Вниз
Скачать: CL | DM;

Как передать нажатие клавиши другой программе   Найти похожие ветки 

 
oleg2   (2002-09-18 19:03) [0]

Уважаемые мастера, подскажите как мне передать нажатие последовательности кнопок на клавиатуре другой программе?


 
Song ©   (2002-09-18 19:42) [1]

SendMessage(),keybd_event()


 
oleg2   (2002-09-19 10:23) [2]

Попробовал вот такую конструкцию:
SendMessage(MyWnd, WM_KEYDOWN, Ord(VK_F1),1);
- работать не хочет, а вот что касается:
SendMessage(MyWnd, WM_CLOSE, 0,0); - работает чудесно.
В чем тут может быть закавыка?


 
Codec   (2002-09-23 17:20) [3]


> Попробовал вот такую конструкцию:
> SendMessage(MyWnd, WM_KEYDOWN, Ord(VK_F1),1);

клавишу нужно не только "нажать", но и "отжать" :-) - WM_KEYUP

А keybd_event() передаёт нажатия клавиш только в АКТИВНОЕ окно (если я ничего не путаю :-)) ).
Удачи!



 
Song ©   (2002-09-23 17:27) [4]

Работать не хочет потому что вероятно всего у Вас MyWnd - дискриптор прилоожения, а не дискриптор того окна, которое эти клавиши на самом деле обрабатывает. Т.е. другими словами, если применительно к блокноту,
то SendMessage(FindWindow(nil,"Блокнот"),WM_KEYDOWN,Ord("a"),1) - ничего не даст. Чтобы буква действительно нажалась и показалась в поле ввода, нужно посылать её именно в тот контрол, где она и должна отображаться:
SendMessage(GetWindow(FindWindow(nil,"Блокнот"),GW_CHILD),WM_KEYDOWN,Ord("a"),1);

Если это всё непонятно, значит вероятно Вам ещё рано работать с сообщениями.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
3-11039
Shadow
2002-10-14 16:11
2002.11.04
Как переконвертировать TStringGrid в DBF и сохранить?


1-11307
id_privin
2002-10-22 15:16
2002.11.04
Как победить Invalid class typecast в DLL


14-11403
Arbin
2002-10-02 11:00
2002.11.04
Анализ текста - общение с компом


14-11477
Иришка
2002-10-16 13:11
2002.11.04
Помогите бедной девушке


14-11430
vopros
2002-10-15 12:17
2002.11.04
У меня вопрос




   Наверх