2016-02-10 5 views
0

Как позвонить TerminateProcess с административными привилегиями?Как вызвать TerminateProcess с административной привилегией?

Когда я пытаюсь позвонить TerminateProcess на COM-исполняемый файл (Sample.exe), он возвращает ошибку «ACCESS DENIED».

Я также попробовал команду TASKKILL, она также возвращает ту же ошибку.

Но когда я запускаю «TASKKILL/F/IM Sample.exe» в командной строке (Open -Run As Admin). Он успешно удалил Sample.exe

Примечание: Я создал дескриптор sample.exe, используя функцию OpenProcess.

Может кто-нибудь предложить хорошее решение?

+0

Ваше приложение должно работать с соответствующими разрешениями. Попробуйте запустить приложение в качестве администратора. –

+0

@ MohamadElghawi- Да, он работал только как администратор – Sree

+3

Вам нужно предоставить свой процесс SeDebugPrivilege, даже при работе в качестве администратора. Вот ссылка на код Microsoft для вызова TerminateProcess с дескриптором из OpenProcess https://support.microsoft.com/en-us/kb/131065 –

ответ

-1

Ваше приложение должно запускаться с такими разрешениями. Короче сказать, с правами администратора. Вы можете перезапустить свою программу, используя ShellExecuteEx и runas в качестве администратора.

+0

Это неверно, комментарий Кристофера Ойклеса прав. – user2120666

+0

Ваш комментарий не соответствует действительности. Вам нужен SeDebugPrivilege только для завершающих процессов с IL> HIGH –

+0

Что это за «IL» и что такое «HIGH»? – user2120666

 Смежные вопросы

  • Нет связанных вопросов^_^