![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Oberon83 |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 6.5.2005 Где: Республика Чуваши я Репутация: нет Всего: 1 |
Каким образом можно сделать так, чтобы моя программа не закрывалась по сочетанию Alt+F4. Работаю в C++ Builder 6.
Следующий код не работает(хотя должен):
Никак не могу понять почему. Система - WinXP Так же не работает отключение кнопок Свернуть и Минимизировать:
Тоже почему не знаю... --------------------
OpenArea.ru |
||||
|
|||||
JoyEx |
|
|||
![]() Дядя ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 21.6.2005 Где: Москва, РФ Репутация: 4 Всего: 12 |
Попробуйте сделать обработчик сообщения WM_CLOSE.
Это сообщение отредактировал(а) JoyEx - 22.6.2005, 23:00 -------------------- Если ты уже никого не боишься, значит ты самый страшный |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 1 Всего: 92 |
Можно свой хот-кей кинуть.
|
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Oberon83
Вопрос задан не корректно. Отключить закрытие программы невозможно, потому что система всегда оставляет за собой право шутдаунить любой процесс. Юзать блокировку Alt-F4 - это по ламерски, извиняюсь за выражение.
А прикинь, у него открыто ещё пять прилаг, и ему вдруг захотелось закрыть какую-то другую прогу, но нет из-за этого хот-кея сообщение будет посылаться именно этой проге и остальное не закроется, тем самым чел ощутит дисскомфорт. JoyEx Более реальный совет, но винды тоже не тупые, если ты сделаешь там что-то типа goto, то система все равно аварийно вырубит прилагу через определенный промежуток времени, прямо по середине какой-то работы, но то есть специальный таймаут. |
|||
|
||||
JoyEx |
|
|||
![]() Дядя ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 21.6.2005 Где: Москва, РФ Репутация: 4 Всего: 12 |
En_t_end
Если корректно, быстро обрабатывать WM_CLOSE от ALT+F4, то ВинниПух ничего плохого не сделает. Можно это делать примерно так на VC:
Главное, чтобы поток получивший WM_CLOSE от accelerators незамедлительно обработал это сообщение. Можно еще глобально сделать: взять исходник .sys фильтра клавиатуры \WINDDK\.......\src\input\kbfiltr из DDK, добавить в него пару строк (запретить комбинации клавиш) и установить потом его в Windows. Только не просите меня сделать это за Вас сегодня. -------------------- Если ты уже никого не боишься, значит ты самый страшный |
|||
|
||||
codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 3 Всего: 39 |
А по моему все очень просто, берешь в параметре формы, если есть onClose, ставишь строку
|
|||
|
||||
Nemesis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 20.2.2005 Где: Москва Репутация: нет Всего: 5 |
В таком случае программа просто перезапустит себя.
Можно просто получив сообщение WM_CLOSE не передавать его системе, а заменить его скажем на WM_PRINT (портим окно и заставляем послать новое сообщение). --------------------
|
|||
|
||||
oper54 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 13.5.2005 Репутация: нет Всего: 1 |
Не долго мучаясь
![]() ВОТ -
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |