Как определить раскладку клавиатуры (язык) в фоновом режиме? - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5
Похожие ответы