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

Красиво убить другое приложение?   Найти похожие ветки 

 
Serhio ©   (2003-11-02 19:11) [0]

Подскажите, как можно красиво убить чужое приложение?

Ситуация такая: я знаю дескриптор главного окна приложения и посылаю ему WM_CLOSE, если у приложения в данный момент не открыто ни одного дочернего окна, то оно закрывается без проблем, если же было открыто дочернее окно, то приложение закрывается, но винда говорит "Application Error" - не хорошо


 
Nick Denry ©   (2003-11-02 20:53) [1]

TerminateProcess see F1 Win32SDK


 
kostik78ua   (2003-11-03 09:44) [2]

function NTKillProcess(iProcessID: Integer): Integer;
var
hProcess: Integer;
pfnExitProcess: Pointer;
hInstance: Integer;
hThread: DWORD;
begin
Result:=ERROR_SUCCESS;

hProcess:=OpenProcess(PROCESS_ALL_ACCESS, FALSE, iProcessID);

if hProcess > 0 then begin
hInstance:=GetModuleHandle("KERNEL32.DLL");
pfnExitProcess:=GetProcAddress(hInstance, "ExitProcess");
hThread:=CreateRemoteThread(hProcess, nil, 0, pfnExitProcess, nil, 0,hThread);
if hThread>0 then begin
WaitForSingleObject(hThread, 40000);
if not CloseHandle(hThread) then Result:=GetLastError;
end else Result:=GetLastError;
CloseHandle(hProcess);
end else Result:=GetLastError;
end;

Копирайт - не мой :)


 
Дубинин Алексей ©   (2003-11-03 23:57) [3]

Например H это тот дескриптор который ты знаешь. Далее проще...

var
a: Cardinal;
H1: HWND;
begin
GetWindowThreadProcessID(H, @a);
H1 := OpenProcess(PROCESS_TERMINATE, True, a);
TerminateProcess(a, 0);//Убьет наповал :-)
end;


 
Serhio ©   (2003-11-04 17:31) [4]

Спасибо, заработало, только в приведенном примере, в строке
TerminateProcess(a, 0);//Убьет наповал :-)
вместо "а" надо поставить "H1", тогда точно убивает...


 
DVM ©   (2003-11-04 21:00) [5]

Сначала попробуйте закрыть программу по-хорошему, а то после TerminateProcess остается много мусора.



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

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



Память: 0.46 MB
Время: 0.021 c
1-11935
ghg
2003-12-20 16:03
2004.01.05
работа с памятью


1-11951
uu
2003-12-19 21:58
2004.01.05
INI


9-11766
X-RayMan
2003-06-12 15:02
2004.01.05
DoubleBuffer...


1-11924
Equilebriya
2003-12-19 06:13
2004.01.05
Выравнивание текста по ширине


3-11799
BlackCat
2003-12-08 18:32
2004.01.05
Проблема с запросом...




   Наверх