|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.03.2008, 16:49 | #1 |
Регистрация: 30.03.2008
Сообщений: 5
|
[VC++] Закрытие программы: ALT + F4. Активное окно. Фильтрация деактив
Доброе время суток!
- И снова я мучаюсь с 'оконной процедурой'. - Работаю на 'Visual C++'. (MVS 2005) - Мне необходимо проводить некоторые действия над окном (Отправлять окну сообщения о перемещение и действиях мыши.), но из-за специфики игры, нельзя, чтобы окно получало сообщение о 'дезактивации' (WM_ACTIVATE). - То есть мне приходится делать подмену 'оконной процедуры' и в ней уже фильтровать сообщение 'WM_ACTIVATE'. (Сдесь нет проблем, всё нормально) - Проблема заключается в том, что если во время работы окна, попытаться закрыть другие программы такие как: 'Microsoft Office Word' например, или закрыть какую-либо программу при помощи комбинации клавиш 'Alt + F4', то закрывается и окно игры. - Делать изменения в коде программы main.exe я не могу, то есть мне нужно что-то придумать владея лишь: handle окна, pid, и подменной 'оконной процедурой'. P.S. -> Потратив сутки на поиск в 'google.com' и 'msdn.com' особо ничего не дало. Может у кого-то есть идеи, буду рад. # Добавление: Фильтрация сообщений 'WM_CLOSE' и 'WM_DESTROY' не помогла. # Дополнение: Подробно о сообщение 'WM_ACTIVATE' можно почитать на следующих ресурсах: MSDN, firststeps.ru. # Результат использования 'WinSpector' - Последние десять сообщений перед закрытием окна после использования комбинации клавиш 'ALT + F4'. Код:
|
30.03.2008, 16:49 | #2 | |
Регистрация: 30.03.2008
Сообщений: 5
|
# Интересные наблюдения: Я с самого начала думал, что при закрытие какого-либо окну, отправляется системное сообщение об закрытие. Затем когда возникла проблема описанная в данной теме, была мысль(возникло предположение), что наверно отправляется системное сообщение об закрытие всем активным окнам(хотя это даже по логике не правильно).
- Но следующие эксперементы дали следующий результат: Цитата:
P.S. -> Читал данную статью 'Неснимаемое (неубиваемое) приложение', но в моём случае не подходит, так как окну вообще сообщения о закрытие не приходят. |
|
30.03.2008, 16:50 | #3 |
Регистрация: 30.03.2008
Сообщений: 5
|
Игра 'MuOnline'.
Графический движек: 'OpenGL'. Не знаю парни, может у меня руки кривые хз... - Выкладываю свой код: # Установка глобального хука вида 'WH_KEYBOARD': Код:
# Подмена 'оконной процедуры': Код:
# Оконная процедура: Код:
# Дополнение: У меня есть 'cesdn.dll', в которой это реализовано, пробовал декомпилить.(Вроде всё перевёл(парни помогли), но полюбому окно закрывается) - Если бы кто-то помог мне декомпилить .dll, было супер. |
30.03.2008, 16:51 | #4 | |
Регистрация: 30.03.2008
Сообщений: 5
|
# Результаты тестирования программ WindowMode других ребят:
Цитата:
- # Ссылки на архив с 'cesdn.dll': |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Закрытие программы | Zloy_Doomer | Общие вопросы Delphi | 3 | 23.06.2008 19:08 |
Активное окно | Messir_Leonard | Win Api | 4 | 22.04.2008 19:25 |
Активное окно | MadReason | Win Api | 12 | 10.01.2008 17:44 |
Предыдущее активное окно | martinz | Win Api | 3 | 25.11.2007 15:02 |
Запрет на закрытие программы | John_chek | Общие вопросы Delphi | 2 | 04.05.2007 11:39 |