【发布时间】:2011-03-03 05:48:26
【问题描述】:
我正在尝试从 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 :我尝试过 CREATE_NEW_PROCESS_GROUP 但它仍然是作为我正在运行的应用程序的子级创建的..
-
应用程序要求当进程树被任务管理器杀死时,子进程不应该死亡
标签: c++ winapi createprocess