Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Убийца приложения

Ответить
Настройки темы
Убийца приложения

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как сделать,чтобы моё приложение нельзя было убить? Или какие messages
ловить?
(в Ctrl + Alt + Del его не видно, тут проблем нет)

Отправлено: 22:07, 21-01-2003

 
Lunich


Сообщения: n/a

Профиль | Цитировать


Можно попробовать перезапускать процесс при попытке закрыть приложение... Но это в зависимости от того, что именно хочеться увидеть в итоге...

Отправлено: 00:08, 23-01-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


WakeUp
Никак.
Если захотят - все равно убьют.

На некоторых NT-системах нельзя прибить CSRSS.EXE, но это так задумано на уровне ядра.

При вызове TerminateProcess ловить сообщения бесполезно, их просто не будет.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 02:37, 23-01-2003 | #3

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


Цитата:
Или какие messages ловить
WM_DESTROY
WM_CLOSE

Отправлено: 02:42, 23-01-2003 | #4


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


mar
Эти сообщения посылаются окну, и то не гарантировано.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 09:41, 23-01-2003 | #5

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


vasketsov
конечно, посылаются окну (и вопрос был - какие сообщения ловить) насчет - необязательно - это то есть как?
именно что обязательно - так окошки устроены - на распределении и обработке сообщений.
см. MSDN
Когда мы хотитм закрыть окно - любым способом, то ему посылается сообщение WM_DESTROY Оно попадает в функцию окна и уже она, вызывает функцию PostQuitMessage(), которая помещает в очередь сообщений WM_QUIT
Когда из очереди выбирается WM_QUIT, GetMessage (или ее заменитель ) возвращает FALSE и приложение должно завершить цикл обработки.
т.е., если не хотеть закрываться, то в WndProc, или в том, что ее заменяет, надо обратить внимание на стандартное место
Код: Выделить весь код
   case WM_DESTROY:
     PostQuitMessage(0);  // и вместо этого что-нибудь сделать
     break;

Отправлено: 10:51, 23-01-2003 | #6


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


mar
Это всё при нормальном завершении приложения.
Я пробовал.

P.S. забыл: всё это под Win9X.

Отправлено: 18:13, 23-01-2003 | #7


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


mar
В начале ссылки на WinCE, там-то как раз это не обязательно и в MSDN это даже написано.

Цитата:
обработке сообщений.
Да, но вовсе не обязательно WM_DESTROY окно получает.
Гляди псевдокод.

BOOL bClosed = FALSE; //глоб. перем.

//оконная функция
WndProc()
{
if (uMsg == WM_CLOSE)
bClosed = TRUE;
}

while (GetMessage())
{
тут цикл.

if (bClosed) break;
}

И окно WM_DESTROY не получит.

Кроме того, существуют особености неполучения этого сообщения при выходе из системы.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 20:26, 23-01-2003 | #8

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


vasketsov так я про wm_close писала,  а в код, извини, не воткнула. Это же Microsoft ! у них, как в египетской мифологии: куча богов отвечает за одно и то же, а для жрецов  еще и  недокументированные возможности
WakeUp
а что ты понимаешь под ненормальным завершением? мы же не будем настаивать на том, чтобы приложение продолжало работать с выключенным питанием

Отправлено: 23:08, 23-01-2003 | #9


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


mar

Ну например берёшь ZXView (я обычно им пользуюсь),
он показывает все процессы (а не окна) и убиваешь любой процесс. Ведь в приложеннии может не быть окон.

Отправлено: 23:52, 23-01-2003 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Убийца приложения

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Windows 7 - убийца батарей?! mnbv Microsoft Windows 7 36 03-05-2012 08:38
Project Pink: «убийца» iPhone от Microsoft OSZone News Новости и события Microsoft 0 25-09-2009 15:30
Службы - [решено] Дефрагментатор убийца или доктор? vovikrus Microsoft Windows 2000/XP 3 17-08-2009 12:59
CMD/BAT - [решено] Убийца процесса New DiploBoy Скриптовые языки администрирования Windows 1 14-02-2009 10:38




 
Переход