Re[2]: CreateProcess
От: getInfo  
Дата: 21.09.04 08:43
Оценка:
Здравствуйте, 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'е
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.