Эмуляция нажатия клавиши Эмуляция нажатия клавиши
Эмуляция нажатия клавиши при помощи Message. |
*
| *
|
| |
Внутри приложения это выполняется достаточно просто с помощью вызова функции
API SendMessage() или метода Perform того объекта (или формы), кому посылается
сообщение о нажатой клавише).
Пример
Memo1.Perform(WM_CHAR, Ord('A'), 0);
или
SendMessage(Memo1.Handle, WM_CHAR, Ord('A'), 0);
приведет к печати символа "A" в объекте Memo1.
При помощи SendMessage можно эмулировать клавиатурный ввод окна других
приложений
Эмуляция нажатия клавиши при помощи API |
*
| *
|
| |
В API существует интересная функция keybd_event, которая позволяет эмулировать
нажатие любой клавиши на клавиатуре. Параметры вызова:
procedure keybd_event(bVk: Byte; bScan: Byte; dwFlags, dwExtraInfo: DWORD);
bVk - Виртуальный код клавиши
bScan - аппаратный скан-код
dwFlags - флаги управления. Допустимы знаначения:
- KEYEVENTF_EXTENDEDKEY - формируется расширенный код клавиши,
- KEYEVENTF_KEYUP - формировать код отпускания клавиши
dwExtraInfo - расширенная информация - 32-битный набор флагов - расшифровку см. в
описании перехватчика клавиатуры.
© Зайцев Олег, "Программирование на Delphi - обмен опытом" 1999-2004. При использовании любых материалов данного сайта
необходимо указывать источник информации. Дата обновления: 22.11.2004. Сайт размещен на хостинге AGAVA - Хостинг от AGAVA.ru