Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Убить прогу [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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо