Форум: "WinAPI";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];
ВнизЗакрыть процесс? Найти похожие ветки
← →
gluka (2002-01-23 01:32) [8]> Raptor
>А в таких системах как WinNT/2k/XP ничего у тебя не выйдет. >Здесь на это надо иметь соответствующие права.
procedure TerminateProcess;
var
hToken:THandle;
sedebugnameValue:Int64;
tkp:TOKEN_PRIVILEGES;
ReturnLength:Cardinal;
hProcess:THandle;
begin
//Получаем SeDebugPrivilege
// Получаем дескриптор нашего процесса
if not OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken )
then exit;
// Получаем LUID привилегии
if not LookupPrivilegeValue( nil, "SeDebugPrivilege", sedebugnameValue )
then begin
CloseHandle(hToken);
exit;
end;
tkp.PrivilegeCount:= 1;
tkp.Privileges[0].Luid := sedebugnameValue;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
// Добавляем привилегию к нашему процессу
if not AdjustTokenPrivileges(hToken,false,tkp,SizeOf(tkp),tkp,ReturnLength)
then showmessage("Ошибка при получении Debug-привилегиии");
CloseHandle( hToken );
// Завершаем процесс. Если у нас есть SeDebugPrivilege, то мы можем завершить и системный процесс
// Получаем дескриптор процесса для его завершения
hProcess := OpenProcess(PROCESS_TERMINATE, FALSE, StrToInt(Edit1.Text));
if hProcess =0
then showmessage("Wrong Handle")
else
// Завершаем процесс
if not TerminateProcess(hProcess, DWORD(-1))
then showmessage("Couldn""t terminate process")
else showmessage("Process was terminated successfully");
CloseHandle( hProcess );
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c