CreateProcess()用法

來源:互聯網
上載者:User


// 第一種使用方法
//////////////////////////////////////////////////////////////////////////
char szCommandLine[] = "notepad";
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_USESHOWWINDOW;//指定wShowWindow成員有效
si.wShowWindow = TRUE;//此成員設為TRUE的話則顯示建立進程的主視窗
BOOL bRet = CreateProcess(
NULL,//不在此指定可執行檔的檔案名稱
_tcsdup(TEXT("c:\\windows\\system32\\notepad.exe")),//命令列參數
NULL,//預設進程安全性
NULL,//預設進程安全性
FALSE,//指定當前進程內控制代碼不可以被子進程繼承
CREATE_NEW_CONSOLE,//為新進程建立一個新的控制台視窗
NULL,//使用本進程的環境變數
NULL,//使用本進程的磁碟機和目錄
&si,
&pi);
if (bRet)
{
//不使用的控制代碼最好關掉
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
printf("新進程的ID號:%d\n", pi.dwProcessId);
printf("新進程的主線程ID號:%d\n", pi.dwThreadId);
}





// 第二種使用方法
//////////////////////////////////////////////////////////////////////////
// 本人使用這個方法,是在UNCODE字元集。
// 使用時需要注意一下字元集,有可能會因為字元集的原因會出現其它錯誤。


STARTUPINFO StartInfo = { sizeof(StartInfo) };
PROCESS_INFORMATION ProcInfo;
StartInfo.dwFlags = STARTF_USESHOWWINDOW;
StartInfo.wShowWindow = FALSE;
//LPTSTR pro = _tcsdup(TEXT("c:\\windows\\system32\\notepad.exe"));
LPTSTR pro = _tcsdup(TEXT("D:\\testfile\\Release\\MSGClient.exe"));
CreateProcess(NULL, pro, NULL, NULL, NULL, NULL, NULL, NULL, &StartInfo, &ProcInfo);
system("pause");




// 第三種使用方法
//////////////////////////////////////////////////////////////////////////
SHELLEXECUTEINFO shExecInfo;
shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
shExecInfo.fMask = NULL;
shExecInfo.hwnd = NULL;
shExecInfo.lpVerb = L"";
shExecInfo.lpFile = L"D:\testfile\\Release\\MSGClient.exe";
//shExecInfo.lpParameters = __argv[1];
shExecInfo.lpDirectory = NULL;
shExecInfo.nShow = SW_SHOW;
shExecInfo.hInstApp = NULL;
ShellExecuteEx(&shExecInfo);



//錯誤碼擷取

/////////////////////////////////////////////////////////////

DWORD dw = GetLastError();



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.