用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");
轉載于:https://www.cnblogs.com/jasonxiang/archive/2013/01/25/2876861.html
總結
以上是生活随笔為你收集整理的用CreateProcess()在MFC中执行批处理命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 日期字符串互转
- 下一篇: Word编写代码时输出半角引号