Здравствуйте, getInfo, Вы писали:
I>Есть сервис, в сервисе нужно порадить процесс I>CreateProcess не возвращает ошибок, но ничего и не пораждает.
Скорее всего он на другом десктопе. Посмотри таскменеджером.
I>Каким тогда образом это сделать?
в lpStartupInfo задай lpDesktop "Default", а лучше "WinSta0\\Default".
Здравствуйте, Demon, Вы писали:
D>Здравствуйте, getInfo, Вы писали:
I>>Есть сервис, в сервисе нужно порадить процесс I>>CreateProcess не возвращает ошибок, но ничего и не пораждает. D>Скорее всего он на другом десктопе. Посмотри таскменеджером.
I>>Каким тогда образом это сделать? D>в lpStartupInfo задай lpDesktop "Default", а лучше "WinSta0\\Default".
Здравствуйте, getInfo, Вы писали:
I>в итоге bRet == true, notepad не веден в TaskManager'е
Под каким аккаунтом создается notepad?
Скорее всего, под Local System. А имеет ли Local System доступ к десктопу?
Скорее всего, нет.
Здравствуйте, Lonely Dog, Вы писали:
LD>Здравствуйте, getInfo, Вы писали:
I>>в итоге bRet == true, notepad не веден в TaskManager'е LD>Под каким аккаунтом создается notepad? LD>Скорее всего, под Local System. А имеет ли Local System доступ к десктопу? LD>Скорее всего, нет.
Здравствуйте, Lonely Dog, Вы писали:
I>>в итоге bRet == true, notepad не веден в TaskManager'е LD>Под каким аккаунтом создается notepad? LD>Скорее всего, под Local System. А имеет ли Local System доступ к десктопу? LD>Скорее всего, нет.
Уж кто-кто, а Local System точно имеет.
Здравствуйте, Demon, Вы писали:
D>Здравствуйте, Lonely Dog, Вы писали:
I>>>в итоге bRet == true, notepad не веден в TaskManager'е LD>>Под каким аккаунтом создается notepad? LD>>Скорее всего, под Local System. А имеет ли Local System доступ к десктопу? LD>>Скорее всего, нет. D>Уж кто-кто, а Local System точно имеет
По-моему, вы не правы.
Ну и что мы видим???
1. Если процессу сделать TerminateProcess, то он убьется (т.е. не будет его).
2. MDSN про CreateProcess говорит следующее "If the function succeeds, the return value is nonzero". Разницу между "== TRUE" и "!= 0" чувствуешь?
D>Ну и что мы видим??? D>1. Если процессу сделать TerminateProcess, то он убьется (т.е. не будет его). D>2. MDSN про CreateProcess говорит следующее "If the function succeeds, the return value is nonzero". Разницу между "== TRUE" и "!= 0" чувствуешь?
Здравствуйте, Lonely Dog, Вы писали:
LD>>>А имеет ли Local System доступ к десктопу? LD>>>Скорее всего, нет. D>>Уж кто-кто, а Local System точно имеет LD>По-моему, вы не правы.
Цитирую Рихтера:
"Учетная запись LocalSystem обладает практически всеми имеющимися в системе привилегиями"
Если ничего не понаставили, то защищенным создается только десктоп Winlogon.
Вот например для переключения активного десктопа с Winlogon на другой, у нее по умолчанию не хватит прав.
D>>Ну и что мы видим??? D>>1. Если процессу сделать TerminateProcess, то он убьется (т.е. не будет его). D>>2. MDSN про CreateProcess говорит следующее "If the function succeeds, the return value is nonzero". Разницу между "== TRUE" и "!= 0" чувствуешь?
I>Не в этом дело, даже если I>TerminateProcess(pi.hProcess, NO_ERROR); I>закоментировать все равно ничего не произойдет