|
#1
|
|||
|
|||
Доступ к процессу
Здравствуйте, уважаемые.
Суть вопроса в следующем: Пишу простенький диспетчер задач, с функцией вывода информации о процессе(производитель экзешника, путь к файлу) и с функцией убийства процесса. Думаю, многие из вас сталкивались с ситуацией, когда вредоносными программами(Вирусами) отключался регэдит и диспетчер задач. Есть PID процесса, есть функция, убивающая процесс. Процесс можно убить почти любой.(не получалось убить только avp.exe - каспер) Но, это при запуске программы из-под компилятора.(кнопка F9 - Run) Если скомпилировать, и запустить - то некоторые процессы убить не получается. Подозреваю, что отказано в доступе. error code: 6 Если запускать из компилятора - то функцией возвращается 0 код и процесс убит. Антивирус не при чем. Функция: Код:
function KillProcess(PID: Integer): Integer; var PH, EC: Cardinal; begin Result:= 0; PH:= OpenProcess(PROCESS_ALL_ACCESS, True, PID); GetExitCodeProcess(PH, EC); if (PH = 0) then Result:= GetLastError else begin if not TerminateProcess(PH, EC) then Result:= GetLastError; CloseHandle(PH); end; end; Вопросы: 1) Коим образом можно извлечь информацию о производителе?(майкрософт, адоб, и.т.п.) // Это не столь важно 2) Коим образом можно получить необходимый доступ к процессу, не зависимо от компилятора? |