Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.05;
Скачать: 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 вся ветка

Текущий архив: 2004.01.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
3-11829
Slym
2003-12-08 08:43
2004.01.05
Какие транзакции поддерживает MS Access 2002(XP)?


4-12195
MaG
2003-11-04 20:08
2004.01.05
.............помощь в создании


14-12095
NeyroSpace
2003-12-15 10:54
2004.01.05
Как импортировать адресную книгу в формате с текст с


3-11776
S.A.S.
2003-12-09 13:44
2004.01.05
FIB, declare cursor


3-11834
Марат
2003-12-08 07:24
2004.01.05
DBComboBox