Модификация компонента KeyEvent
1) Полностью переведен на функцию SendInput.
Добавлен отдельный модуль для этого.
2) В оригинале не очень корректно активировалось целевое окно
3) Добавлено свойство Mode (VirtualKey, Unicode):
VirtualKey - Code указывает виртуальный код клавиши от 1 до 254, независимый от оборудования. Так работает текущий компонент.
Unicode - для метода doPress Code является кодом Unicode-символа, а метод doSendString будет посылать строку в формате Unicode.
4) Добавлен метод doSendString, верхняя точка и свойство Text.
В режиме Mode=VirtualKey чтобы по doPress получить большую английскую букву "A", надо подать код 67 и с включенной клавишей Shift.
В режиме Mode=Unicode метод doSendString посылает символы как символы Unicode, и они будут получены окном именно как символы (если программа ANSI - то только те, которые входят в текущую кодовою страницу Windows).
В остальных режимах doSendString берет из Text только коды клавиш по коду символа, как будто выполняется doPress с подачей на точку Code.
В примере чтобы послать строку с кириллицей в своё поле ввода, нужно переключить раскладку на русский (из-за того, что программа ANSI).
Работа с мышью в SendInp.pas не реализована, так как пока не знаю, где и в каком виде будет нужна. Модуль показывает работу с функцией SendInput() и может использоваться в собственных компонентах. Учтены некоторые проблемные моменты.
Ответов: 4657
Рейтинг: 760
|
|||
карма: 26 |
| ||
файлы: 1 | KeyEvent_mod_NS_2025-04-05.zip [5.1KB] [49] |
Редактировалось 3 раз(а), последний 2025-04-05 20:29:06