Эмуляция нажатия клавиши даже в неактивном окнеDelphi , ОС и Железо , Клавиши
Автор: Dimka Maslov { **** UBPFD *********** by delphibase.endimus.com **** >> Эмуляция нажатия клавиши в любом окне, в т.ч. неактивном Процедура эмулирует нажатие клавиши в любом окне путём посылки ему пары сообщений WM_KEYDOWN и WM_KEYUP. Процедура принимает два параметра - Handle окна и код клавиши (см. описание констант VK_xxxx). Зависимости: Windows Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург Copyright: Dimka Maslov Дата: 29 апреля 2002 г. ***************************************************** } procedure EmulateKey(Wnd: HWND; VKey: Integer); asm push 0 push edx push 0101H //WM_KEYUP push eax push 0 push edx push 0100H //WM_KEYDOWN push eax call PostMessage call PostMessage end; // Пример использования: EmulateKey(Edit1.Handle, VK_RETURN); Классический снIPPET на Delphi! Эта процедура эмулирует нажатие клавиши в любом окне, отправляя два сообщения Windows: Вот разбивка кода:
Пример использования в конце показывает, как использовать эту процедуру для эмулирования нажатия клавиши в контроле редактирования:
Это эмулирует нажатие клавиши Enter в контроле редактирования с handle Обратите внимание, что это старый-старый снIPPET на Delphi от 2002 года, поэтому вам может потребоваться обновление его в соответствии с вашими конкретными требованиями и текущей версией Windows API. Процедура EmulateKey эмулирует нажатие клавиши в любом окне, включая неактивные, отправляя пары сообщений WM_KEYDOWN и WM_KEYUP. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |