Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.02.2012, 14:59
gerc gerc вне форума
Прохожий
 
Регистрация: 13.02.2012
Сообщения: 2
Репутация: 10
Вопрос Передать нажатие клавиши с отловом хуком в неактивное окно?

День добрый. Извиняюсь если не та тема, вроде наиболее похожа... ответа в faq или же гугле не нашел ) может и плохо искал, но тем не менее...
Как я уже и сам догадываюсь, это не реально, но хотелось бы все же уточнить... вообщем суть такая...
Имеется программа с хуком(доступа к исходникам нет), вызывающая по нажатию f1-f5 определенные действия в определенной программе... (если важно, то это замена данных в определенных ячейках бд) Разумеется, работает только при активном окне с бд(копий может быть запущено несколько)... нужно передать в неактивное окно с бд это самое нажатие, что бы оно поймалось тем самым хуком..

Пробовал создать иллюзию активности окна и через send/post message по хэндлу передать нажатие клавиши... передается нормально, но хуком не хватается...
Через keybd_event хуком хватается, но только при активном окне...

Подскажите реально ли что нить придумать, и если да то хоть в какую сторону копать...
Ответить с цитированием
  #2  
Старый 13.02.2012, 17:45
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Не понял. Программа с хуком, и при этом F1-F5 работают только в активном окне? Так для активного хук не нужен, все нажатия и так к нему идут. Для чего служит хук, если не для отлова кнопок? В общем опишите, пожалуйста, схему как-нибудь более понятно. В виде
1) Есть программа в N окон, она реагирует на такие-то кнопки.
2) Есть хук, написанный мной/не мной, который перехватывает такие-то события и делает с ними то-то.
3) Надо сделать так, чтоб при нажатии таких-то кнопок происходили такие-то действия в таких-то окнах.
В общем как-нибудь понятнее.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 13.02.2012, 18:59
gerc gerc вне форума
Прохожий
 
Регистрация: 13.02.2012
Сообщения: 2
Репутация: 10
По умолчанию

Есть прогамма с хуком, написанная не мной(прошлый админ писал, на скок я в курсе написана си, если имеет значение) работает следующим образом: при работе с бд(оболочка бд так же написана нашей конторкой), при нажатии на f1-f5, хук хватает хэндл текущего окна бд, и выполняет в нем необходимые действия(соответственно нажатой F`ке).
задача: передать нажатие нужной клавиши в нужное окно, что бы хук его схватил и выполнил функцию именно в том окне без фокуса окна бд (хэндл окна известен).
Ответить с цитированием
  #4  
Старый 13.02.2012, 20:15
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Пока что приходит в голову только ручная модификация хука.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 13.02.2012, 20:28
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,068
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А написать свою программу, которая будет просто выполнять нужные действия в нужном окне оболочки БД? Или просто прямо в самой БД?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter