Форум: "WinAPI";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
ВнизКак передать нажатие клавиши другой программе Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c