![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Убить прогу [D5, D6, Win95/98, WinXP]
R_D © (2002-08-23 12:46:00)Как завершить работу чужой программы, тоже но если она висит.
Вообшем как по Ctrl+Alt+Del
Mike_Z (2002-08-29 13:41:00) [1]Вариант с TerminateProcess виснет 50 на 50.
EndTask есть в Kernel & User.dll, но описание его где взять и под все ли Win он работает?
Song (2002-08-26 21:32:00) [2]2s.kaster © (26.08.02 20:31)
ЕСЛИ ОНА ВИСИТ!!! Как программа может обрабатывать сообщения, если она висит ;-)))
s.kaster (2002-08-26 20:31:00) [3]PostMessage(FindWindow(Nil, PChar(точное имя программы)), WM_CLOSE, 0, 0);
Almaz (2002-08-24 00:29:00) [4]
> Viktor Kushnir © (23.08.02 16:42)
> Можно так, если HWND процесса знаешь.
HWND - это handle окна, а если это так, то ваш код не сработает, т.к. OpenProcess должен получать не ссылку, а идентификатори не окна, а процесса. Который, впрочем, можно получить, зная handle окна используя функцию GetWindowProcessID.
> R_D (23.08.02 12:46)
> Как завершить работу чужой программы, тоже но если она висит.
> Вообшем как по Ctrl+Alt+Del
Если хотите именно "как по Ctrl+Alt+Del", то лучше использовать функцию EndTask- именно ей пользуется Task Manager.
Удачи.
Viktor Kushnir (2002-08-23 16:42:00) [5]Можно так, если HWND процесса знаешь.
procedure Kill(hndl: HWND);
begin
Hndl := OpenProcess(PROCESS_TERMINATE, FALSE, Hndl);
if Hndl <> null
then begin
TerminateProcess(Hndl, 0);
CloseHandle(Hndl);
end
end;