Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.04;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.014 c
14-11447
Fog
2002-10-15 18:24
2002.11.04
Пора завязовать?


7-11504
Arkan
2002-07-07 10:35
2002.11.04
Модем


14-11424
Dmitriy Polskoy
2002-10-15 10:24
2002.11.04
Delphi Personal


3-11084
Elvira
2002-10-15 14:02
2002.11.04
LookUp-поля в InterBase


14-11482
Opuhshii
2002-10-14 08:40
2002.11.04
A-a-a-a-a-а (крик души), Cranberry,