MFC命令窗口命令

时间:2015-07-20 06:21:03

标签: c++ mfc

在MFC中,我想通过打开命令窗口并执行命令来创建一个进程,即打开记事本 我发现这个尝试它不起作用

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);

2 个答案:

答案 0 :(得分:1)

你并没有告诉cmd做任何事情。试试这个:

CreateProcess(0, "C:\\WINDOWS\\System32\\cmd.exe /c notepad.exe", 0, 0, TRUE, 0, 0, 0, &sInfo, &pInfo);

但也许这更容易

ShellExecute(0, "open", "cmd.exe", "/C notepad.exe", 0, SW_HIDE);

甚至这个:

system("notepad.exe");

答案 1 :(得分:0)

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

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

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);