![]() |
|
|
![]()
|
|
| kirpa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Возможно ли при закрытии программы (из деспечера задач, Завершить процесс ) поймать момент этого события и нормально завершить программу? если не сложно с примером
|
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 10 Всего: 95 |
Поймать момент команды "Завершить приложение" можно: приложению посылается сообщение WM_CLOSE с таймаутом (по истечении которого при отсутствии положительного ответа о завершении оно прибивается насильно). Поймать момент посылки команды "Завершить процесс" никак нельзя потому что приложению ничего не посылается.
P.S. В частных случаях все это можно обойти... Пути вариантов действий зависят от цели конкретной задачи... -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| Klin |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: 20 Всего: 25 |
Можно запретить использование диспечера через реестр:
HKCU\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ System\DisableTaskMgr = dword:1 з.ы. правда не лучший вариант, вернее будет ее просто убрать из списка задач, а просто отмена закрытия вот (событие OnClose):
либо (OnCloseQuery):
-------------------- Я человек - попробуйте обвинить меня за это. |
||||
|
|||||
| Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: 20 Всего: 25 |
Прочел, что под семейство XP, NT, ME это не возможно (только если с помощью специальной библиотеки), но можно блокировать диспечер. Можно так:
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
| kirpa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
но как тогда нельзя убить службу kav(Касперского) из процессов??? Можна ли тогда поймать сообщение которое выдает диспечер задач при завершении процесса??? обязательно ли писать хук?
Добавлено через 1 минуту и 26 секунд можна ли тогда запускать свою программу от имени служби которую нельзя закрыть? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
касперский запускает второй процесс (за которым следит), который седдит за первым.
делается это путем перехвата API. сообщения такого нет. запустить можна, толька толка -- 0... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: 20 Всего: 25 |
Если, это имеет ткое большое значение, то тут два пути решения:
1) Динамическое или статистическое отключение дистпетчера 2) Создание двойного хост приложения (которое, как написал _hunter, будет следить одно за другим) Примеры реализации смотри выше. з.ы. Могут быть и другие способы, прояви фантазию -------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 7 Всего: 67 |
можно поподробнее? -------------------- СУВ, Partizan. |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: 10 Всего: 95 |
Partizan
RSDN: Перехват API (раз), Перехват API (два) WASM.ru: Перехват API (раз), Перехват API (два), Перехват API (три) ну и до кучи Слежение за NativeAPI -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |