如何在指定桌面上启动进程,以启动SpyXX为例:
HANDLE hDesk0 = ::OpenDesktop("default", 0, 0, GENERIC_ALL);
HANDLE hDesk = ::OpenDesktop("ANOTHER_DESKTOP",0,0,GENERIC_ALL);
if(hDesk == NULL) {
hDesk = ::CreateDesktop("ANOTHER_DESKTOP",NULL,NULL,0,GENERIC_ALL,NULL);
}
else
{
::CloseDesktop(hDesk);
}
STARTUPINFO si;
ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.lpDesktop = _T("ANOTHER_DESKTOP");
PROCESS_INFORMATION pi;
ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));
::CreateProcess("C://Program Files//Microsoft Visual Studio//Common//Tools//SPYXX.EXE",
NULL,
NULL,
NULL,
FALSE,
0,
NULL,
"C://Program Files//Microsoft Visual Studio//Common//Tools",
&si,
&pi);