@4ainik
начинал с бейсика на 286 в 1994

Как эмулировать нажатие кнопок в определенной раскладке?

Есть проблема - написал простую программу, вставляющую метку времени в текущее окно ввода посредством эмуляции нажатий кнопок, но есть одно "но":
"03ю03ю2019 18Ж48Ж58" :) как видите не совсем то, что должно быть, а именно если текущий язык ввода русский, то вместо "." (точка) печатается "ю", а вместо ":" (двоеточие) "Ж".
Есть идея сделать принудительный перевод раскладки из русской в английскую и такой способ есть, но тогда хотелось бы ее восстанавливать, но здесь другое "НО", как узнать какая раскладка, точнее язык ввода активен для текущего окна ввода?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker Куратор тега Windows
Dark side eye. А у нас печеньки! А у вас?
Для эмуляции ввода используйте SendInput API — оно позволяет эмулировать ввод любых символов и поддерживает юникод. Вот тут есть пример использования: https://github.com/nnCron/plugins/blob/master/send...
Ну или можете просто скачать, поставить ннкрон как приложение, плагины sendinput и strings, и использовать задачу примерно такого типа:
#( Вставка_даты
WatchHotKey: "@+d" \ Alt+Shift+D
SingleInstance
Action:
BEGIN 
   VK_MENU KEY-PRESSED? 
   [CHAR] D KEY-PRESSED? OR
   VK_LSHIFT KEY-PRESSED? OR
WHILE
  50 PAUSE
REPEAT  
" %DD%/%MM%/%YYYY% %hh%:%mm%" AKEYS
)#
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы