VC++启动进程并隐藏窗口

HDESK hDesk = CreateDesktop(_T("MyDesk"), NULL, NULL, 0, GENERIC_ALL, NULL);
_ASSERT(hDesk);
STARTUPINFO si = {sizeof(si)};
si.lpDesktop = _T("MyDesk");
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;
PROCESS_INFORMATION pi = {0};

if(CreateProcess(NULL, pCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
	HANDLE hProcess=pi.hProcess;
	CloseHandle(pi.hThread);
	if (WaitForSingleObject(hProcess,INFINITE)!=WAIT_FAILED)
	{
		DWORD dwExitCode;
		GetExitCodeProcess(hProcess,&dwExitCode);
		if (dwExitCode==STILL_ACTIVE)
			MessageBox(NULL, "thread still alive !", "debug", MB_OK);
	}
	CloseHandle(pi.hProcess);
	CloseDesktop(hDesk);
}
本文为“技术点滴”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注