|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.05.2007, 23:32 | #1 |
stopfake.org
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,927
|
Завершение работы чужой программы
Как можно закрыть другую программу? Очень надо. Спасибо.
|
27.05.2007, 15:47 | #2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
по какому параметру тебе надо закрыть?
вот закрытие процесса по ID Код:
|
27.05.2007, 18:38 | #3 |
stopfake.org
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,927
|
|
28.05.2007, 20:06 | #4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
получение ID процесса по его имени
Код:
|
29.05.2007, 14:51 | #5 | |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Бее, гадость
Цитата:
пыщь
|
|
29.05.2007, 23:11 | #6 |
stopfake.org
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,927
|
|
30.05.2007, 17:02 | #7 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Ну вот такая фигня - либо просто создать с WinExec но мудрить с PIDами чтоб завершить, либо мудрить с CreateProcess и легко завершить по TerminateProcess, поскольку будем иметь handle. Второй способ лучше тем, что можно следить за процессом, проверить работает ли он ещё и т.п.
И не так тут всё сложно (запустить) Код:
Код:
А, да зыбыл, если совсем по правилам то CloseHandle(PI.hProcess); CloseHandle(PI.hThread); надо по Form.onclose сделать, чтоб в памяти не гадить
пыщь
Последний раз редактировалось JTG; 30.05.2007 в 17:11. |
03.09.2007, 17:22 | #8 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Весчь!!
А ещё можно так( обмануть проги, даже Каспера ):
типа завершение Виндовс идёт procedure TForm1.Button1Click(Sender: TObject); Type EXE = RECORD Nm :String; Cls :String; END; VAR H :HWND; TExe :EXE; WCls :ARRAY[0..255]of Char; begin Texe.Nm := 'Имя программы - Заголовок'; H := FindWindow(nil, PChar(TExe.Nm)); GetClassName(H, WCls, SizeOF(WCls)); TExe.Cls := String( WCls ); H := FindWindow(PChar(TExe.Cls), PChar(TExe.Nm)); PostMessage(H, wm_endsession, 0, 0); PostMessage(H, WM_QUERYENDSESSION, 0, 0); end; |
03.09.2007, 19:25 | #9 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Каспера так не обманешь (если включена самозащита, а она включена по умолчанию), сервисная часть останется в памяти и будет молча блокировать выполнение подозрительных программ/скриптов... - при попытке запустить какой-нить ехешник с трояном, например, будет стандартное виндовое окно "Невозможно получить доступ к файлу, т.к. файл занят другим процессом" или "Невозможно произвести чтение с диска"...
(гараздо интереснее, если прибить сервис, оставив при этом оболочку - он тада в панике маячит в трее восклицательным знаком, и орёт, типа нарушен механизм защиты кстати при выключении винды сервис продолжает работает даже после остановки рабочей станции до самого конца, фиг-где найдёшь вирус, который тоже сможет в это время работать
пыщь
Последний раз редактировалось JTG; 03.09.2007 в 19:27. |
06.09.2007, 17:17 | #10 | |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Цитата:
Последний раз редактировалось Alter; 21.02.2008 в 19:17. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу найти Handle Edit'а в окне чужой программы | nechto | Общие вопросы Delphi | 32 | 05.03.2008 19:41 |
Запуск своего модуля из чужой программы | Volkogriz | Общие вопросы Delphi | 7 | 16.10.2007 05:19 |
Винда ХР не хочет завершаться. Остается экран "Завершение работы компьютера" | mitrandir | Софт | 7 | 12.06.2007 08:59 |
завершение работы оператора If | Noor | Общие вопросы C/C++ | 1 | 14.03.2007 10:07 |