Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти то ,не знаю что... или работа с HOOK_ами 
:(
    Опции темы
Coocky
Дата 5.12.2004, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Господа,всего 2 вопроса:
1.Возможно ли с помощью хуков,разрешить такую ситуацию-в приложении Word или Excel,пользователь работает с диалогом пиоска текста.Можно ли определить введеную строку в данном диалоге из своей проги?Судя по SPY++,можно узнать даже класс окна,и сообщений,которые в нем происходят....
2.Если не трудно,опишите в кратце последовательность действий,функций,или киньте ссылку на пример.


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Coocky
Дата 6.12.2004, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Я все равно буду держать вопрос на вверху топика,т.к. считаю что,чистые API_сты должны знать ответ на вопрос.... smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Mad
Дата 6.12.2004, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 2
Всего: 19



Первый вариант, просто моноторинг этой строки (без хуков).
1. Находиш хандл окна поиска (FindWindow(), FindWindowEx() ).
2. Переодически запрашиваеш строку (SendMessage(WM_GETTEXT)).

Второй вариан, через хуки
1. Находиш хандл окна поиска.
2. Ставиш хук на очередь сообщений.
3. В хуке по нужному сообщению (например нажатие Enter, или кнопки ОК) запрашиваеш строку.

Вобщем примерно так smile


--------------------
user posted image
PM MAIL   Вверх
Coocky
Дата 6.12.2004, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Оп,
Mad,попался smile Теперь я с тебя не слезу. smile
1.
Цитата
Переодически запрашиваеш строку (SendMessage(WM_GETTEXT)).

Где гарантия,что это окно поиска(что текст вводится там)?
2.
Цитата
Находиш хандл окна поиска.
Как?



--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Mad
Дата 6.12.2004, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 2
Всего: 19



Цитата(Coocky @ 6.12.2004, 13:31)
Где гарантия,что это окно поиска(что текст вводится там)?

Ну если ты правильное окно нашел ... smile


Цитата(Coocky @ 6.12.2004, 13:31)
Цитата
Находиш хандл окна поиска.

Как?

В Spy++ определяеш имя класса диалога (и его титл).
Вызываеш FindWindow(ClassName, WindowTitle).
Для найденого Вызываеш FindWindowEx(Fount, NULL, "EDIT", NULL) (в Spy++ посмотри "EDIT" или как).



--------------------
user posted image
PM MAIL   Вверх
Coocky
Дата 6.12.2004, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Цитата
Ну если ты правильное окно нашел ...

Mad в том то и проблема... smile
Как ты думаешь,окно поиска будет иметь одно имя?
Т.е. ты хочешь сказать,что на разных тачках такой код будет работать универсально?
Ладно,я попробую через FindWindowEx(Fount, NULL, "EDIT", NULL) ,хотя я знал,но изначально идею отбросил.Слишком уж просто.А вот еще итнересно,как определить класс окна и тескт в нем.Ну как в SPY++&


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
oleg1973
Дата 6.12.2004, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 1
Всего: 34



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

класс окна и диалог можно предварительно посматреть ручками


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Coocky
Дата 6.12.2004, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Отлично.
Одно уточнение
Цитата
при активации делаем FindWindow по классу окна ворда
а потом зная какой диалог делаем GetDlgText

Так вот вопрос чтоб отловить имено нужное окно.Если можно немного поясни...
Я понимаю,что можно отловить активацию окна,но как узнать нужное?
Цитата
класс окна и диалог можно предварительно посматреть ручками

Где гарантия,что не будет другого такого класса?Или такого класса больше нет?


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Step
Дата 7.12.2004, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



Короче моя идея

ставим хук определяющий в какое окно идут данные (программа хука с определением есть, давай емайл и я вышлю)

потом при поступление данных просто ставим фильтр по окну, т.е. отсеиваем не нужное... по следующуму принцыпу
1. заголовок содержит слово Найти или Find
2. парент окна есть окно Ворда.


вот и все


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
bel_nikita
Дата 7.12.2004, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 4
Всего: 47



Coocky
Посмотри здесь, может что-нить полезное найдешь:
Кейлоггер
Перехват вызовов функций


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Coocky
Дата 7.12.2004, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Всем спасибо!Рад что много откликнулось и помогло smile
Вторая задача -запустить приложение открыть окно поиска,вставить текст в окно и найти(во загнул)
Пробовал работать через получение меню,и посылкой сообщений smile Не видит меню прога.Подозреваю что меню в Word-своеобразный класс,сделаный руцями...Как быть.Идеи есть?


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Mad
Дата 7.12.2004, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 2
Всего: 19



Присвой быструю клавишу, и шли главному окну мессаг WM_KEYDOWN, WM_KEYUP smile


--------------------
user posted image
PM MAIL   Вверх
Coocky
Дата 7.12.2004, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Mad
Цитата
Присвой быструю клавишу, и шли главному окну мессаг WM_KEYDOWN, WM_KEYUP

Не понял?Мне нужно
Цитата
запустить приложение открыть окно поиска,вставить текст в окно и найти(во загнул)



--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Mad
Дата 7.12.2004, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: 2
Всего: 19



Coocky
1. Запускаеш приложение
2. В настройках указываеш быструю клавишу для вызова поиска (например Ctrl+F)
3. Посылаеш WM_KEYDOWN с параметрами Ctrl+F

Высвититься окно поиска smile


--------------------
user posted image
PM MAIL   Вверх
Coocky
Дата 7.12.2004, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



A Текст туда?


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0557 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.