MFC 命令 Window 命令
MFC Command Window Command
在 MFC 中,我想通过打开命令 Window 并在其中执行命令来创建一个进程,比如打开记事本。
我发现这个试过它没有用
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);
您没有告诉 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");
去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);
在 MFC 中,我想通过打开命令 Window 并在其中执行命令来创建一个进程,比如打开记事本。
我发现这个试过它没有用
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);
您没有告诉 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");
去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);