用CreateProcess()在MFC中执行批处理命令
//封装CreateProcess
BOOL CFXNAdhocDemoDlg::ProcessCmd(LPTSTR cmd)
{
ASSERT(cmd!=NULL);
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// Start the child process.
if( !::CreateProcess( NULL, // No module name (use command line)
cmd, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
CREATE_NO_WINDOW,//The process is a console application that is being run without a console window
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi ) // Pointer to PROCESS_INFORMATION structure
)
{
//异常处理
::MessageBox(NULL,TEXT("执行外部命令出错!"),NULL,MB_OK);
return FALSE;
}
// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
return TRUE;
}
//调用封装的函数来执行批处理命令
ProcessCmd(L"help");