![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как послать нажатие клавиши F2 а затем клавишу "A" [D7, WinXP]
trix © (2009-09-23 18:25:00)Как послать нажатие клавиши F2 а затем клавишу "A" стороннему приложению. Приложение со скрытой формой, знаю только хендл заголовка, разные keybd_event не подходят. Если можно пример для F2, дальше сам справлюсь.
Leonid Troyanovsky (2009-09-23 19:36:00) [1]
> trix (23.09.09 19:15) [7]
> Хорошо, как вообще послать нажатие клавиши любому приложению.
> Клавиша F2, приложение неактивно, знаем только хендл заголовка.
Считай, что никак.
> обычный notepad
А чего такого notepad делает по F2?
Впрочем, notepad проcт:
http://groups.google.com/group/fido7.ru.delphi/msg/925bebee0309bec9
--
Regards, LVT.
trix (2009-09-23 19:32:00) [2]для нотепада работает
PostMessage(h, WM_keydown, vk_f2, 0);
PostMessage(h, WM_keyUP, vk_f2, 0);
но этоне для всех приложений, для других просто нет такой обработки
trix (2009-09-23 19:22:00) [3]обычный notepad
trix (2009-09-23 19:15:00) [4]Хорошо, как вообще послать нажатие клавиши любому приложению. Клавиша F2, приложение неактивно, знаем только хендл заголовка.
Leonid Troyanovsky (2009-09-23 19:14:00) [5]
> trix (23.09.09 19:10) [5]
> PostMessage(h,WM_SYSKEYDOWN,79,440001);
> PostMessage(h,WM_SYSKEYUP,79,$C0440001);
> хендл окна получаю верный, но ничего не происходит.
Ерундой болтаешь.
Я ж, вроде, понятно спросил.
И с чего это вдруг WM_SYSKEY.
--
Regards, LVT.
trix (2009-09-23 19:10:00) [6]WM_SYSKEYDOWN 79 440001
WM_SYSKEYUP 79 C0440001
при нажатии в любой открытой форме, пытаюсь сделать вот так, чтобы повторить это нажатие в любой форме.
PostMessage(h,WM_SYSKEYDOWN,79,440001);
PostMessage(h,WM_SYSKEYUP,79,$C0440001);
хендл окна получаю верный, но ничего не происходит.
Leonid Troyanovsky (2009-09-23 19:00:00) [7]
> trix (23.09.09 18:52) [3]
> keybd_event не подходит ввиду того, что оконо не активно!
Значит, RegisterHotKey можно исключить.
Партизанство, IMHO, неуместно.
У приложения есть другие (нескрытые) окна?
Скрытое окно есть child?
> прекрасно работает и на приложениях со скрытой формой.
Это свезло.
--
Regards, LVT.
trix (2009-09-23 18:52:00) [8]keybd_event не подходит ввиду того, что оконо не активно!
все равно как-то можно, так как
PostMessage(cwnd, WM_LBUTTONDOWN, 0, 0);
PostMessage(cwnd, WM_LBUTTONUP, 0, 0);
прекрасно работает и на приложениях со скрытой формой.
Leonid Troyanovsky (2009-09-23 18:46:00) [9]
> trix (23.09.09 18:29) [1]
> SendMessage(h, wm_char, 121, 0);
Скрытые окна, во-ще, не обязаны обрабатывать клавиатурный ввод.
Если это, дейс-но, скрытое окно, то, вероятно, на F2 оно срабатывает
через RegisterHotKey, и, сл-но, keybd_event вполне уместен.
Подозрительно лишь то, что F2 vs Ctrl+Shift+Alt+F2, бо конфликт
слишком вероятен.
Поэтому, лучше неторопливо рассказать, про приложение
и что за окна оно скрывает.
--
Regards, LVT.
trix (2009-09-23 18:29:00) [10]пробовал так
SendMessage(h, wm_char, 121, 0);
не работает.