Функция GetKeyboardLayout

Declare Function GetKeyboardLayout Lib "user32" ( _
        ByVal dwLayout As Long) As Long

GetKeyboardLayout позволяет получить активный локальный идентификатор (раскладку клавиатуры) для заданной нити. Если параметр dwLayout равен 0, то возвращается идентификатор для текущей потока.

Возвращаемое значение

Функция возвращает локальный идентификатор для потока. Нижнее слово содержит языковой идентификатор, а старшее слово - описатель устройства для физической раскладки клавиатуры.

Параметры

dwLayout
Идентификатор заданной нити или 0 для текущего потока

Пример

' Определим используемую раскладку в Блокноте
' Перед проверкой примера запустите Блокнот и меняйте в нем
' раскладку клавиатуры и проверяйте код
Dim hAppWnd As Long
Dim ThreadID As Long
Dim ThreadLayout As Long
Dim Res As Long

' Ищем окно Блокнота
hAppWnd = FindWindow(vbNullString, "Безымянный - Блокнот")
If hAppWnd = 0 Then
    MsgBox "Окно не найдено!"
Else
    ThreadID = GetWindowThreadProcessId(hAppWnd, ByVal 0&)
    Res = AttachThreadInput(GetCurrentThreadId, ThreadID, 1)
    ThreadLayout = GetKeyboardLayout(ThreadID)
    Res = AttachThreadInput(GetCurrentThreadId, ThreadID, 0)

    MsgBox "Текущая раскладка " & Hex(ThreadLayout)
End If

Смотри также

ActivateKeyboardLayout, LoadKeyboardLayout

Категория

Клавиатура