首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MFC命令窗口命令

MFC命令窗口命令
EN

Stack Overflow用户
提问于 2015-07-20 06:21:03
回答 2查看 2.6K关注 0票数 0

在MFC中,我希望通过打开命令窗口并在其中执行命令,例如打开记事本来创建进程。

我发现这个尝试不起作用

代码语言:javascript
复制
STARTUPINFO sInfo = {0};
sInfo.cb = sizeof(sInfo);
PROCESS_INFORMATION pInfo = {0};

CreateProcess("C:\\WINDOWS\\System32\\cmd.exe",""0,0,TRUE,
NORMAL_PRIORITY_CLASS,0,0,&sInfo,&pInfo);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-20 06:49:20

你不能让cmd做任何事。试试这个:

代码语言:javascript
复制
CreateProcess(0, "C:\\WINDOWS\\System32\\cmd.exe /c notepad.exe", 0, 0, TRUE, 0, 0, 0, &sInfo, &pInfo);

但也许这更容易

代码语言:javascript
复制
ShellExecute(0, "open", "cmd.exe", "/C notepad.exe", 0, SW_HIDE);

甚至这个:

代码语言:javascript
复制
system("notepad.exe");
票数 1
EN

Stack Overflow用户

发布于 2015-07-20 07:13:03

转到我们可以看到的MSDN文档,您没有指定第二个参数,即要执行的命令行。

另一方面,第六个参数没有NORMAL_PRIORITY_CLASS枚举项。你应该这样做:

代码语言:javascript
复制
STARTUPINFO si = { sizeof(si) };   
PROCESS_INFORMATION pi;   

si.dwFlags = STARTF_USESHOWWINDOW;   
si.wShowWindow = TRUE;  
TCHAR cmdline[] =TEXT(" notepad.exe");   
BOOL bRet = ::CreateProcess (   
    TEXT("C:\\WINDOWS\\System32\\cmd.exe"),  
    cmdline,    
    NULL,   
    NULL,   
    FALSE,   
    CREATE_NEW_CONSOLE,   
    NULL,   
    NULL,   
    &si,   
    &pi);   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31509935

复制
相关文章

相似问题

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