Здравствуйте, Demon, Вы писали:
D>Здравствуйте, getInfo, Вы писали:
I>>Есть сервис, в сервисе нужно порадить процесс
I>>CreateProcess не возвращает ошибок, но ничего и не пораждает.
D>Скорее всего он на другом десктопе. Посмотри таскменеджером.
I>>Каким тогда образом это сделать?
D>в lpStartupInfo задай lpDesktop "Default", а лучше "WinSta0\\Default".
STARTUPINFO cif;
ZeroMemory(&cif, sizeof(STARTUPINFO));
cif.wShowWindow = SW_HIDE;
cif.lpDesktop = (unsigned short *)malloc(256);
if(cif.lpDesktop == NULL)
return bRet;
wstrcpy(cif.lpDesktop, L"Default");
PROCESS_INFORMATION pi;
if (TRUE == CreateProcess(L"c:\\windows\\notepad.exe", L"",
NULL, NULL, FALSE, CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS, NULL, NULL, &cif, &pi))
{
TerminateProcess(pi.hProcess, NO_ERROR);
bRet = true;
}else{
log(L"alerts", Log::Error, L"Unable to send Net Send");
}
в итоге bRet == true, notepad не веден в TaskManager'е