Вниз
Скачать: CL | DM;

Как завершить процесс, доступ к которому закрыт ?   Найти похожие ветки 

 
__Сергей__   (2007-10-21 00:05) [0]

Есть программа, которая когда вешается - ее не закрыть. Из нее можно выйти только когда она работоспособна и не повисла. А ежели она зависла то ее ничем не взять (хотя ее ничем не взять и когда она не повисшая), пытаешься удалить процесс из списка процессов в таск менеджере, пишут отказано в доступе. Пытаешься то же самое через таск инфо - тоже отказ в доступе. пытаешься через процесс эксплорер - та же фигня.
Программа настолько бесит тем что когда она виснет приходится перезапускать машину или же запускать вторую ее копию, а прога давольно ресурсоемкая ...
Вобщем помогите пожалуйста, подскажите как можно убивать такие гадостные программы :(((
пробовал так :

procedure KillProgram(ClassName: PChar; WindowTitle: PChar);
const
PROCESS_TERMINATE = $0001;
var
 ProcessHandle : THandle;
 ProcessID: Integer;
 TheWindow : HWND;
begin
   TheWindow := FindWindow(PChar(ClassName), PChar(WindowTitle));
   GetWindowThreadProcessID(TheWindow, @ProcessID);
   ProcessHandle := OpenProcess(PROCESS_TERMINATE, FALSE, ProcessId);
   TerminateProcess(ProcessHandle,4);
end;


вообще ноль имоций...

Помогите пожалуйста :(


 
DrPass ©   (2007-10-21 00:30) [1]

Попробуй с помощью FarManager - он может грохнуть с debug-привилегиями


 
Игорь ©   (2007-10-21 09:45) [2]


> __Сергей__   (21.10.07 00:05)


Ну если Task Manager не может тогда наверно никто не сможет, попробуй с debug-привилегиями

function EnableDebugPrivilege(): Boolean;
var
 hToken: THandle;
 tp: TOKEN_PRIVILEGES;
 d: DWORD;
begin
 Result := False;
 if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken) then
 begin
   tp.PrivilegeCount:= 1;
   LookupPrivilegeValue(nil, "SeDebugPrivilege", tp.Privileges[0].Luid);
   tp.Privileges[0].Attributes:= $00000002;
   AdjustTokenPrivileges(hToken, False, tp, SizeOf(TOKEN_PRIVILEGES), nil, d);
   if GetLastError = ERROR_SUCCESS then
   begin
     Result := True;
   end;
   CloseHandle(hToken);
 end;
end;


 
korneley ©   (2007-10-21 10:00) [3]

А может все проще? Может сервис какой-нибудь сначала остановить, и все или само "уйдёт", или убъётся из таскманагера без пробемм?


 
korneley ©   (2007-10-21 10:01) [4]

пробемм = проблемм



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-1187258884
Klopan
2007-08-16 14:08
2007.11.11
Object TreeView


2-1192622267
foreverDelphi
2007-10-17 15:57
2007.11.11
f1:File;


15-1191043444
Washington
2007-09-29 09:24
2007.11.11
Delphi vs. VB


11-1176224694
Don
2007-04-10 21:04
2007.11.11
Владимиру по KOLadd


6-1173882512
tytus
2007-03-14 17:28
2007.11.11
Indy_10 Как правильно отключить клиента?




   Наверх