Главная страница
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
3-11065
Марина
2002-10-15 10:34
2002.11.04
Memo-поля в DBGrid


3-11107
Kurmanbek
2002-10-16 08:59
2002.11.04
Как лечить базу IBase? Помогите pliz!


1-11266
id_privin
2002-10-23 10:34
2002.11.04
Как сделать лог к проге


14-11446
Zemal
2002-10-15 19:41
2002.11.04
Indy, FastNet & etc. Ну... типа... сказка, мля...


3-11068
dimonf
2002-10-14 21:38
2002.11.04
Народ, что за формат базы bdf???