首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateProcess不工作

CreateProcess不工作
EN

Stack Overflow用户
提问于 2011-10-26 23:29:58
回答 2查看 3.1K关注 0票数 0

我在让以下代码在C++ (VC++控制台应用程序)中工作时遇到问题。它不会创建流程,但会打印出错误文本。

代码语言:javascript
复制
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");
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-26 23:31:21

你需要清零STARTUPINFO。

代码语言:javascript
复制
ZeroMemory(&si, sizeof(si));
票数 3
EN

Stack Overflow用户

发布于 2011-10-26 23:49:01

我引用MSDN的话:

该函数将不使用搜索路径。此参数必须包括文件扩展名;不假定有默认扩展名。

所以你不能只使用cmd。这将取决于您的工作目录,如果它可以工作。如果你使用一个完整的路径,它将会工作。例如,这是我的机器上的一个工作示例。

代码语言:javascript
复制
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");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7905024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档