Declare Function GetKeyboardType Lib "user32" (ByVal nTypeFlag As Long) As Long
GetKeyboardType получает информацию об используемой клавиатуре
В случае ошибки возвращается 0. В успешном случае возвращаются различные значения, в зависимости от запроса.
При флаге nTypeFlag = 0
1 - 83-клавишная клавиатура для IBM PC/XT -совместимых компьютеров |
2 - 102-клавишная клавиатура Olivetti |
3 - IBM PC/AT -совместимая клавиатура (84клавиши) |
4 - Расширенная IBM-клавиатура (101- или 102 клавиши) |
5 - Клавиатура Nokia 1050 |
6 - Клавиатура Nokia 9140 |
7 - Японская клавиатура |
При флаге nTypeFlag = 1 может возвращаться любое значение, в зависимости от производителя
При флаге nTypeFlag = 2 можно определить число функциональных клавиш
1 - 10 клавиш |
2 - 12 или 18 клавиш |
3 - 10 клавиш |
4 - 12 клавиш |
5 - 10 клавиш |
6 - 24 клавиш |
7 - Зависит от производителя |
0 - тип клавиатуры |
1 - Подтип клавиатуры |
2 - Число функциональных клавиш на клавиатуре |
Dim t As String Dim klava As Long klava = GetKeyboardType(0) If klava = 1 Then t = "PC or compatible 83-key keyboard" If klava = 2 Then t = "Olivetti 102-key keyboard" If klava = 3 Then t = "AT or compatible 84-key keyboard" If klava = 4 Then t = "Enhanced(IBM) 101-102-key keyboard" If klava = 5 Then t = "Nokia 1050 keyboard" If klava = 6 Then t = "Nokia 9140 keyboard" If klava = 7 Then t = "Japanese keyboard" MsgBox "Тип клавиатуры : " & t
ActivateKeyboardLayout, LoadKeyboardLayout