![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Господа,всего 2 вопроса:
1.Возможно ли с помощью хуков,разрешить такую ситуацию-в приложении Word или Excel,пользователь работает с диалогом пиоска текста.Можно ли определить введеную строку в данном диалоге из своей проги?Судя по SPY++,можно узнать даже класс окна,и сообщений,которые в нем происходят.... 2.Если не трудно,опишите в кратце последовательность действий,функций,или киньте ссылку на пример. -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Я все равно буду держать вопрос на вверху топика,т.к. считаю что,чистые API_сты должны знать ответ на вопрос....
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
Первый вариант, просто моноторинг этой строки (без хуков).
1. Находиш хандл окна поиска (FindWindow(), FindWindowEx() ). 2. Переодически запрашиваеш строку (SendMessage(WM_GETTEXT)). Второй вариан, через хуки 1. Находиш хандл окна поиска. 2. Ставиш хук на очередь сообщений. 3. В хуке по нужному сообщению (например нажатие Enter, или кнопки ОК) запрашиваеш строку. Вобщем примерно так |
|||
|
||||
| Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Оп,
Mad,попался 1.
Где гарантия,что это окно поиска(что текст вводится там)? 2.
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
||||
|
|||||
| Mad |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
Ну если ты правильное окно нашел ...
В Spy++ определяеш имя класса диалога (и его титл). Вызываеш FindWindow(ClassName, WindowTitle). Для найденого Вызываеш FindWindowEx(Fount, NULL, "EDIT", NULL) (в Spy++ посмотри "EDIT" или как). |
||||
|
|||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Mad в том то и проблема... Как ты думаешь,окно поиска будет иметь одно имя? Т.е. ты хочешь сказать,что на разных тачках такой код будет работать универсально? Ладно,я попробую через FindWindowEx(Fount, NULL, "EDIT", NULL) ,хотя я знал,но изначально идею отбросил.Слишком уж просто.А вот еще итнересно,как определить класс окна и тескт в нем.Ну как в SPY++& -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
предлагаю так
ставим хук на клаву, ну чтоб зря не дергатся при активации делаем FindWindow по классу окна ворда а потом зная какой диалог делаем GetDlgText класс окна и диалог можно предварительно посматреть ручками -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Отлично.
Одно уточнение
Так вот вопрос чтоб отловить имено нужное окно.Если можно немного поясни... Я понимаю,что можно отловить активацию окна,но как узнать нужное?
Где гарантия,что не будет другого такого класса?Или такого класса больше нет? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
||||
|
|||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: нет Всего: 25 |
Короче моя идея
ставим хук определяющий в какое окно идут данные (программа хука с определением есть, давай емайл и я вышлю) потом при поступление данных просто ставим фильтр по окну, т.е. отсеиваем не нужное... по следующуму принцыпу 1. заголовок содержит слово Найти или Find 2. парент окна есть окно Ворда. вот и все -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 4 Всего: 47 |
||||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Всем спасибо!Рад что много откликнулось и помогло
Вторая задача -запустить приложение открыть окно поиска,вставить текст в окно и найти(во загнул) Пробовал работать через получение меню,и посылкой сообщений -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
Присвой быструю клавишу, и шли главному окну мессаг WM_KEYDOWN, WM_KEYUP
|
|||
|
||||
| Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Mad
Не понял?Мне нужно
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
||||
|
|||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
Coocky
1. Запускаеш приложение 2. В настройках указываеш быструю клавишу для вызова поиска (например Ctrl+F) 3. Посылаеш WM_KEYDOWN с параметрами Ctrl+F Высвититься окно поиска |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
A Текст туда?
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
![]()
|
| Правила форума "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. |