Как определить раскладку клавиатуры (язык) в фоновом режиме? - VB
Формулировка задачи:
Всем доброго дня суток! Как можно определить раскладку клавиатуры и выводить сообщение, когда программа (окно программы) неактивно?
Нашел код для определения раскладки:
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Но он определяет только когда окно программы активно. Пробывал вставлять в таймер, но не помогает.
И когда каждый раз меняешь выводил сообщение о текущем расладе
Решение задачи: «Как определить раскладку клавиатуры (язык) в фоновом режиме?»
textual
Листинг программы
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long Private Sub Timer1_Timer() Dim KeybLayoutName As String KeybLayoutName = String(9, 0) GetKeyboardLayoutName KeybLayoutName 'Номер 409 - английская, 419 - русская If CStr(CLng(Left$(KeybLayoutName, InStr(1, KeybLayoutName, Chr(0)) - 1))) = "419" Then Form1.Caption = "Ru" Else Form1.Caption = "En" End If End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д