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

作者: 吴杰 分类: 编程 发布时间: 2012-10-14 20:09

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);
}