![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| tusha |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 17.7.2008 Репутация: нет Всего: 1 |
необходимо запретить юзеру закрывать программу путем нажатия на крестик (варианты alt+f4, taskmanager можно не учитывать) . както давно надыбал на Винграде тему где описывается создание простейшего клавиатурного шпиона через хуки. во тчто слепил. прошу не пинать сильно (все мы когдато учились
DLL
MAIN
=) вот что вышло. вобщем нифига не получается., блокнот как закрывался так и закрывается, никаких изменений. меня смущают 1 и 3 параметры SetWindowsHookEx - правильный ли я ставлю фильтр? и как подвязать фильтр к конктретной программе? - в данном случае Notepad натолкните на правильную мысль буду благодарен за советы) |
||||
|
|||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
при WM_CLOSE
return 0; Добавлено через 1 минуту и 4 секунды найди нужное место в целевой проге и пропатчи его |
|||
|
||||
| tusha |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 17.7.2008 Репутация: нет Всего: 1 |
не, чет не получается....
при данном коде, даже хук не получаетсяя поставить. -
всегда NULL если сделать так:
хук типа ставится.. - но не понятно куда))) отработка же
мож фильтр не правильный? |
||||||
|
|||||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 1 Всего: 32 |
Зачем хуки? -------------------- ![]() |
|||
|
||||
| tusha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 17.7.2008 Репутация: нет Всего: 1 |
хм, прикол в том, что из моей проги мне надо контролировать стороннее приложение (notepad, mspaint к примеру). или я чтото не до конца понимаю.... в каком контексте надо юзать
???????? |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
tusha, найди в целевой проге место где она обрабатывает сообщения, и при WM_CLOSE возвращай 0
|
|||
|
||||
| tusha |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 17.7.2008 Репутация: нет Всего: 1 |
у меня нету исходников проги. только exe)
Добавлено через 6 минут и 47 секунд вот что получилось на данный момент: хук устанавливаю так:
обработка сообщений:
при закрытии блокнота АХТУНГ показыватеся )))) НО блокнот таки закрывается. + аналоггичный мессадж показывается на закрытие всех приложений (получился такой себе глобальный хук) |
||||
|
|||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
tusha, реверсируй этот .ехе - получишь "исходники"
для этого можно использовать отладчик, например OllyDbg |
|||
|
||||
| tusha |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 17.7.2008 Репутация: нет Всего: 1 |
гм... мож я не совсем правильно обрисовал задачу (или я не понимаю что до меня хотят донести =) )..
есть прога - не моя, исходников нету, менять ее НЕЛЬЗЯ (лицензия) - которая получает данные с датчиков в режиме онлайн. юзеры иногда вместо того, чтоб свернуть , попадают по крестику - тем самым прерывая получение данных. я же должен перехватывать закрытие - возможно даже не выводя никакого месседжа - тоесть ччтоб юзер клацал по крестику и нифига не происходило. вот. получить ассемблерный код впринципе можно, а смысл? |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
с первым параметром проблем нет, но вот третий - да
HINSTANCE != HWND при всем желании
только твой хук будет срабатывать во всех окнах заданного потока, если в PreventClose не проверять дескриптор -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
на самом деле, задача решается так:
со стилями надо экспериментировать |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
да, со стилями надо экспериментировать, только что, по твоему твой код делает?
Добавлено через 4 минуты и 57 секунд ты просто выключаешь все стили окна, причем закрыть его по прежнему можно: Alt+F4 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
||||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
во первых, убирает не только крестик со строкой заголовка, а все стили, во вторых, очевидно, это не то решение, которое требуется -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
решение с заменой стиля - именно то которое требуется
надо посмотреть родной стиль окна (например spy++) и изменить его так, чтобы крестик пропал\заблокировался Добавлено через 5 минут и 46 секунд вот полностью доделанное решение
убирает все кнопки из строки заголовка, сохраняя все остальные стили (строка заголовка остается) |
|||
|
||||
![]()
|
| Правила форума "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. |