Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.08;
Скачать: CL | DM;

Вниз

Как послать нажатие клавиши F2 а затем клавишу "A"   Найти похожие ветки 

 
trix   (2009-09-23 18:25) [0]

Как послать нажатие клавиши F2 а затем клавишу "A" стороннему приложению. Приложение со скрытой формой, знаю только хендл заголовка, разные keybd_event не подходят. Если можно пример для F2, дальше сам справлюсь.


 
trix   (2009-09-23 18:29) [1]

пробовал так
SendMessage(h, wm_char, 121, 0);

не работает.


 
Leonid Troyanovsky ©   (2009-09-23 18:46) [2]


> 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:52) [3]

keybd_event не подходит ввиду того, что оконо не активно!

все равно как-то можно, так как
 PostMessage(cwnd, WM_LBUTTONDOWN, 0, 0);
 PostMessage(cwnd, WM_LBUTTONUP, 0, 0);


прекрасно работает и на приложениях со скрытой формой.


 
Leonid Troyanovsky ©   (2009-09-23 19:00) [4]


> trix   (23.09.09 18:52) [3]

> keybd_event не подходит ввиду того, что оконо не активно!

Значит, RegisterHotKey можно исключить.

Партизанство, IMHO, неуместно.
У приложения есть другие (нескрытые) окна?
Скрытое окно есть child?

> прекрасно работает и на приложениях со скрытой формой.

Это свезло.

--
Regards, LVT.


 
trix   (2009-09-23 19:10) [5]

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:14) [6]


> 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:15) [7]

Хорошо, как вообще послать нажатие клавиши любому приложению. Клавиша F2, приложение неактивно, знаем только хендл заголовка.


 
trix   (2009-09-23 19:22) [8]

обычный notepad


 
trix   (2009-09-23 19:32) [9]

для нотепада работает
 PostMessage(h, WM_keydown, vk_f2, 0);
 PostMessage(h, WM_keyUP, vk_f2, 0);

но этоне для всех приложений, для других просто нет такой обработки


 
Leonid Troyanovsky ©   (2009-09-23 19:36) [10]


> 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.



Страницы: 1 вся ветка

Текущий архив: 2012.01.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
1-1279206108
я_только_учусь
2010-07-15 19:01
2012.01.08
Как создать процесс c hardware breakpoint?


15-1316692399
Очень Злой
2011-09-22 15:53
2012.01.08
помогите найти заразу


2-1317565266
Pcrepair
2011-10-02 18:21
2012.01.08
TWebBrowser обрабатывает JAVA с ошибкой


15-1316516688
KSergey
2011-09-20 15:04
2012.01.08
Как организована продажа игровых артефакт, "вирт. валюты сайтов"


2-1317155348
Vladimir
2011-09-28 00:29
2012.01.08
Узнать какой из WebBrowser вызвал процедуру