2013-07-19 5 views
4

В настоящее время я изучаю компоновку DVORAK на своей QWERTY-клавиатуре, а это значит, что когда я хочу использовать сочетания клавиш, такие как Ctrl + C, в DVORAK, который заканчивается Ctrl + J, удобство теряется, когда я должен использовать две руки для различных команд. У Windows не существует способа изменить ярлыки, а скрипты authotkey не работают, когда вы переключаетесь обратно на QWERTY, вместо этого они разрушают функциональность ярлыка для QWERTY до выхода из сценария.Vb.net получить раскладку клавиатуры

Так что я хочу сделать, это сделать свою собственную программу, которая будет определять ваш макет и отправлять нужные ключи, но сначала мне нужно определить, какую клавиатуру использовать пользователь, и я не могу понять, как ,

Есть ли способ легко определить, какую клавиатуру использовать кто-то?

+2

Вы видели этот API функции HTTP://msdn.microsoft.com/en-us/library/windows/desktop/ms646296(v=vs.85).aspx? Вот пример использования этого в VB.NET: http://www.pinvoke.net/default.aspx/user32.getkeyboardlayout Я не уверен, хотя, если это будет работать для обнаружения DVORAK и QWERTY. –

+0

Это немного над моей головой, кажется, я не совсем уверен, какой параметр должен быть, или что делать с строкой чисел, которые я возвращаю из функции VB. Если вы знаете, не могли бы вы объяснить, как это работает? EDIT: Я могу получить свой язык ввода, используя: InputLanguage.CurrentInputLanguage() Однако это не дает никакого намека на то, что такое раскладка клавиатуры. – Postman

+0

Я действительно не знаю. Возвращает ли возвращаемое значение из функции «GetKeyboardLayout» при переключении с DVORAK на QWERTY? Если да, то какие изменения, высокое слово, низкое слово или оба? –

ответ

2

я наткнулся на правильный ответ, к счастью,

InputLanguage.CurrentInputLanguage.LayoutName 

Возвращает строку.

Если ваш формат регулярна старый QWERTY английский, он возвращает "США"

Если это Dvorak (United-государства) возвращает "United States-Дворжак"

Смежные вопросы