我正在尝试从我的程序启动一个进程,即cmd.exe。 Doc说我必须使用CreateProcess,下面是我如何使用它:
CreateProcess((LPCWSTR)“\ Windows \ cmd.exe”,(LPCWSTR)“”,0,0,0,0,0,0,0,0); dw = GetLastError(); printf(“%u \ n”,dw);
路径是目标显示的路径(在目标上,我找到了cmd.exe的快捷方式,表示它位于\ windows中。
无论我如何编写路径,错误总是相同的(2)。显然,(2)的错误代码是Invalid_Path。
感谢您的阅读, GQ
答案 0 :(得分:1)
您传递的字符串不正确,无法创建进程。只是将一个面向字节的字符串转换为LPCWSTR并不能解决它是不正确的数据的问题 - 你真的必须使用一个Unicode字符串,你可以拼写为
CreateProcess(L"\\Windows\\cmd.exe", NULL, 0,0,0,0,0,0,0,0);
或者,您可以使用TEXT()
宏。
答案 1 :(得分:0)
路径不正确。使用双反斜杠。
CreateProcess(TEXT("\\Windows\\cmd.exe"), TEXT(""), 0,0,0,0,0,0,0,0);
答案 2 :(得分:0)
此外,最后一个参数不能是NULL
。它必须是指向PROCESS_INFORMATION
结构的指针。有关详细信息,请参阅以下链接