Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c程序运行其他可执行文件_C_Windows - Fatal编程技术网

如何使用c程序运行其他可执行文件

如何使用c程序运行其他可执行文件,c,windows,C,Windows,我在位置D:/a.exe处有一个可执行文件。我将其扩展名更改为a.txt。现在我想用c程序来执行它。 我遵循c代码 #include<windows.h> system("start D:/a.txt"); // or system("D:/a.txt"); #包括 系统(“启动D:/a.txt”); //或 系统(“D:/a.txt”); 程序不会执行它,而是将其打开到记事本中。如何执行实际上是可执行文件的.txt文件?首先重命名它,然后启动它。不能将txt扩展名作为可执行文

我在位置D:/a.exe处有一个可执行文件。我将其扩展名更改为a.txt。现在我想用c程序来执行它。 我遵循c代码

#include<windows.h>

system("start D:/a.txt");
// or
system("D:/a.txt");
#包括
系统(“启动D:/a.txt”);
//或
系统(“D:/a.txt”);

程序不会执行它,而是将其打开到记事本中。如何执行实际上是可执行文件的.txt文件?

首先重命名它,然后启动它。不能将txt扩展名作为可执行文件启动

#include<windows.h>

char oldname[] = "D:/a.txt";
char newname[] = "D:/a.exe";

ret = rename(oldname, newname);

if(ret == 0) 
{
    system("start D:/a.exe");
}
#包括
char oldname[]=“D:/a.txt”;
char newname[]=“D:/a.exe”;
ret=重命名(旧名称、新名称);
如果(ret==0)
{
系统(“启动D:/a.exe”);
}

试试
CreateProcess
。注意这个问题,你会找到解决方案的。。。在Windows上使用
CreateProcessW
,在Unix上使用
exec
函数系列。这不是C问题,而是关于DOS/Windows的问题。我添加了标签。您需要提供有关操作系统版本和设置的更多信息
system
使用在
COMSPEC
环境变量中设置的命令解释器。默认值是cmd,它总是在返回到
ShellExecuteEx
之前尝试
CreateProcess
,因此它应该可以工作;在Windows7中它对我来说确实如此。