|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.07.2011, 14:53 | #11 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
Спасибо, буду дальше крутить=)
|
29.07.2011, 21:04 | #12 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
Я все сделал как ты написал в примере. Только у меня функция обработки хуков почему-то не вызывается. В отладчике не смог проследить как происходит вызов функции, обрабатывающей хуки из функции invoke SetWindowsHookEx,WH_CBT,eax,ebx,0
Для того чтобы было четко видно как происходит обработка, я решил вывести MessageBox, но почему-то он не был выведен. |
30.07.2011, 20:59 | #13 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
вот написал более простой аналог. Задача - при появлении нового окна вывести MessageBox.
Главный файл (exe) Код:
Код:
link /section:.bss,S /DLL /SUBSYSTEM:WINDOWS /debug /DEF:DLLSkeleton.def/LIBPATH:c:\masm32\lib DLLSkeleton.obj Последний раз редактировалось Dimarik; 30.07.2011 в 21:04. |
30.07.2011, 21:00 | #14 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
никаких ошибок нет, но при открытии новых окон MessageBox не вылетает
|
31.07.2011, 18:34 | #15 |
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
У тебя функция hook_ некорректна. Вот:
Код:
|
31.07.2011, 20:37 | #16 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
переделал.
у меня даже хоть и очень криво, но иногда начал работать. Во-первых, почему-то, когда в отладчике выполняю трассировку, при нажатии только на F8, начинает виснуть на call GetProcAddress Однако, если же в самом начале сделаешь точку останова на call [FunctionName_hook_set_F_addr] и нажмёшь F9, тогда всё работает нормально. А если после этой точки останова нажмёшь F9? то появится этот MessageBox. Однако, если зайдёшь внутри функции call [FunctionName_hook_set_F_addr] с помощью F7 и затем нажмёшь F9 - никакого MessageBox не выйдет и произойдёт точка останова. Принт скрин приложил во вложениях. И ещё одна проблема. Самая непонятная: при запуске программы без отладчика, никакого MessageBox не вылезет и программа просто завершит свою работу и выйдет. Может быть я как-то не так скопилировал всё? я основной модуль компилировал так: Код:
Код:
Код:
Код:
короче совсем непонятно. То одна и та же программа работает, то она не работает. |
31.07.2011, 21:54 | #17 | ||
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
Цитата:
Это Цитата:
Код:
Код:
|
||
05.08.2011, 16:33 | #18 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
Я всё сделал как ты сказал.
Но у меня по прежнему всё работает только при запуске из отладчика! Хотя непонятно почему, какая программе разница, откуда её запускать? вот запускающего файла e1.asm Код:
Код:
Код:
|
05.08.2011, 20:02 | #19 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
Добавил цикл обработки сообщений и всё заработало нормально.
Код:
1. По идее ведь был создан бесконечный цикл хуков. то есть: идёт сообщение, если нужное, обрабатываем хук, и потом CallNextHook, если ненужное - просто CallNextHook 2. Почему тогда в отладчике нормально работал? решил программу малость изменить. Надо чтобы при появлении окошка Microsoft Word (вопрос о сохранении документа) автоматически была нажата кнопка Сохранить В результате этого должен произойти автоматический клик по кнопке Сохранить. Код dll-ки Код:
Вылезло такое окошко: (см. вложения) Затем я поставил Break-Point-ы где мне надо было и не один не сработал. Как тогда можно в отладчике отладить эту dll-ку? P.S.Из кода программы видно, что в данный момент не осуществлялась проверка на то, является ли это окно Microsoft Word или какое-либо другое. Это сделаю потом. Сейчас главное щёлкнуть по кнопке сохранить. |
06.08.2011, 00:09 | #20 |
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
Для начала скачай програмку WinDowse и посмотри иерархию компонентов в интересующем окне +текст в окне (кнопка с текстом "ДА" на самом деле имеет текст "&Да") +имя класса кнопки (это не обязательно "button")
Код:
PS: убери лишние переменные из описания и ненужный код в DllEntry Код:
Последний раз редактировалось |{ot; 06.08.2011 в 00:17. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сетевые функции, хуки | Igoressicus | Помощь студентам | 1 | 05.11.2010 14:03 |
Хуки в Windows | JeyKip | Win Api | 11 | 09.05.2010 00:33 |
Программа, использующая хуки | anGeee | Win Api | 1 | 11.12.2009 20:59 |
ListView и хуки | 7KByte | Win Api | 0 | 10.07.2009 22:21 |
Глобальные хуки | Zeraim | Win Api | 2 | 24.05.2008 16:00 |