我在让以下代码在C++ (VC++控制台应用程序)中工作时遇到问题。它不会创建流程,但会打印出错误文本。
static void main(){
char *hotkeyexe = "cmd";
PROCESS_INFORMATION pi;
STARTUPINFO si;
if(!CreateProcess(hotkeyexe, "", 0, 0, 0, 0, 0, 0, &si, &pi))
printf("error");
scanf("%d");
}
}发布于 2011-10-26 23:31:21
你需要清零STARTUPINFO。
ZeroMemory(&si, sizeof(si));发布于 2011-10-26 23:49:01
我引用MSDN的话:
该函数将不使用搜索路径。此参数必须包括文件扩展名;不假定有默认扩展名。
所以你不能只使用cmd。这将取决于您的工作目录,如果它可以工作。如果你使用一个完整的路径,它将会工作。例如,这是我的机器上的一个工作示例。
char *hotkeyexe = "c:\\Windows\\notepad.exe";
PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
if(!CreateProcess(hotkeyexe, "", 0, 0, 0, 0, 0, 0, &si, &pi))
printf("error");
scanf("%d");https://stackoverflow.com/questions/7905024
复制相似问题