Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
1-11857
IgorK
2003-12-18 16:48
2004.01.05
RichTextEdit и Word RTF файл несовместимы?


3-11829
Slym
2003-12-08 08:43
2004.01.05
Какие транзакции поддерживает MS Access 2002(XP)?


7-12177
Woolen
2003-10-24 13:19
2004.01.05
Потоки и процессоры


4-12214
_san_
2003-10-14 10:28
2004.01.05
Как скопировать поврежденный файл


3-11816
Rafe
2003-12-07 17:14
2004.01.05
Триггеры... А стоит ли использовать...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский