我想從C++中的服務創建一個進程。這個新的過程是作爲一個子進程創建的。我想創建一個獨立的進程,而不是一個子進程...創建獨立進程!
我正在使用CreateProcess函數。由於我創建的新進程是一個子進程,當我嘗試在服務級別殺死進程樹時,它也正在殺死子進程...我不希望發生這種情況。我希望創建的新進程獨立於服務運行。
上請諮詢同.. 謝謝..
代碼
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si); // Start the child process.
ZeroMemory(&pi, sizeof(pi));
si.dwFlags = STARTF_USESHOWWINDOW;
if(bRunOnWinLogonDesktop)
{
if(csDesktopName.empty())
si.lpDesktop = _T("winsta0\\default");
else
_tcscpy(si.lpDesktop, csDesktopName.c_str());
}
if(bHide)
si.wShowWindow = SW_HIDE; /* maybe even SW_HIDE */
else
si.wShowWindow = SW_SHOW; /* maybe even SW_HIDE */
TCHAR szCmdLine[512];
_tcscpy(szCmdLine, csCmdLine.c_str());
if(!CreateProcess(NULL,
szCmdLine,
NULL,
NULL,
FALSE,
CREATE_NEW_PROCESS_GROUP,
NULL,
NULL,
&si,
&pi))
'CREATE_NEW_PROCESS_GROUP'標誌有幫助嗎? – sharptooth 2011-03-03 06:17:21
重複? http://stackoverflow.com/questions/3136154/how-to-create-a-process-that-is-not-a-child-of-its-creating-process – young 2011-03-03 06:19:36
你爲什麼要在第一個殺死進程樹地點? – 2011-03-03 06:32:59