CreateProcess not working

CreateProcess not working

本文关键字:working not CreateProcess      更新时间:2023-10-16

我在获得以下代码工作在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");
    }
}

您需要将STARTUPINFO归零

ZeroMemory(&si, sizeof(si));

我引用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");