| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Как не дать закрыть приложение? |
| Автор: DIMONSOFT 19.12.2004, 12:48 |
| Как написать два приложения которые проверяли би свое наличие в памяти и не давали себя закрыть? |
| Автор: Marriage 19.12.2004, 14:02 | ||
Это подойдет ???? |
| Автор: Albinos_x 19.12.2004, 15:33 |
| Думаю, ему нужен неубиваемый процесс. тогда указанное не подойдёт. Предлагаю, так как у тебя два приложение, то можно сделать чтобы одно приложение проверяло второе и наоборот, если одно из двух завершает работу, то второе его запускает. |
| Автор: DIMONSOFT 19.12.2004, 15:49 |
| Так вот этого я и хочу Бывалый .Напиши код!! |
| Автор: Albinos_x 19.12.2004, 18:23 | ||||
не понятно, к кому обращяешся... -------------------- код получения списка процессов
немного поменяй его, чтобы он не создавал список процессов, а искал необходимый Далее засунь его в таймер |
| Автор: DIMONSOFT 19.12.2004, 18:38 |
| Я извеняюсь, в этом форуме недавно, я обращался к тебе Albinos_x. Я не очень понял пример: я добавил модуль Tlhelp32.К примеру мой exe-файл називается ds.exe.Напиши пример конкретно с ним!! |
| Автор: Albinos_x 19.12.2004, 23:37 | ||
Могут быть гденибудь ошибки(не проверял, работать должны по идее), но я думаю разберёшся |
| Автор: Guest 20.12.2004, 13:04 |
| А она сама себя не обнаружит? |
| Автор: Pathfider 20.12.2004, 21:49 | ||
| Как вариант: состряпать хук на системные сообщения. А в добавок сделать процесс системным, чтобы без DebugPrivilege нельзя было закрыть. Добавлено @ 21:51 Albinos_x
А прокатит ли? По-моему лучше последить за событиями CloseQuery и Close. |
| Автор: xAnejl 21.12.2004, 17:42 |
| Если нужно сделать неубиваемый процесс, то либо используй ACL (http://forum.vingrad.ru/index.php?showtopic=37372&unread=1&st=0&#entry283663), либо делай перехват апи на TerminateProcess |
| Автор: Fantasist 22.12.2004, 21:25 |
| Самый простой известный способ - на получение cообщения требующего прилажению закрыться, запускать новый такой же процесс, а этот убивать. Зачастую этого достадочно. |
| Автор: ~FoX~ 23.12.2004, 11:03 | ||
А это прокатит если приложение вываливается по ошибке - собственной/виндовой? |
| Автор: Мебель 27.12.2004, 10:47 |
| А может быть просто в OnCloseQuery засунуть CanClose:=False; и потом по таймеру закрывать диспетчер задач? Ведь приложение можно теперь закрыть только выкинув его из процессов диспетчера... |
| Автор: Pathfider 28.12.2004, 22:21 | ||
А если написана программка для убийства именно этого процесса? Как тады... |
| Автор: DIMONSOFT 29.12.2004, 09:50 |
| Возмем к примеру Kaspersky Антивирь Lite v4.0 и какую-нибудь выключалку программ. В ней мы находим что запущено два процеса с одинаковыми названиями- aupm.exe. Только я нажимаю на кнопку выключить Каспер орет и выпихивает сообщение кто хотел завесить антивирь. ПРИ ЭТОМ КАСпер как-то блокирует выключение. Он не выключается ни НА СЕКУНДУ!!! Может он как-то перехватывает сообщение? Ничего не можете порекомендовать для моей проги?Ваших примерах прога ВЫКЛЮЧАЕТСЯ но потом быстро вкл. но хотелось бы сделать как Каспер! |
| Автор: xAnejl 29.12.2004, 17:52 |
| он через перехват АПИ делает |
| Автор: DIMONSOFT 29.12.2004, 21:21 | ||
А я могу это сделать? |
| Автор: _hunter 30.12.2004, 01:39 |
| а почему бы и нет? |
| Автор: Akella 30.12.2004, 10:07 |
| у серверных СУБД, т.е. у самих приложений(серверов) есть, так сказать, охранник (guardian), например взять тот же Interbase. Пишешь программу, которая сидит в памяти и следит за твоим приложением и перезапускает его в случае чего, а твое приложение тоже следит за охранником и перезапускает его в случае чего. Охраннику даже форма не нужна. |
| Автор: Dimonsoft 1.1.2005, 18:08 | ||
Возможно я не прав но речь снова идет о ПЕРЕЗАПУСКЕ а мне нужен неубываемый процес |
| Автор: xAnejl 2.1.2005, 11:21 | ||
после первого перезапуска убиваем не по "Завершыть процесс", а по "Завершыть дерево процессов" хоть 10 охранников запускай, все равно вышебет!!! |
| Автор: Vit 4.1.2005, 02:35 |
| Учитывая что 90% постов DIMONSOFT имеют направленность написания вредоносного кода считаю помощь ему в этом деле исключительно нежелательной. Тема закрыта! |