Работа с клавиатурой.
Автор Administrator   
05.11.2002 г.
Узнаем тип клавиатуры и некоторые параметры. Для того, что бы узнать тип клавиатуры, подключенной к компьютеру, добавте следующий код в форму проекта:
Private Declare Function GetKeyboardType Lib "user32"
_ (ByVal nTypeFlag As Long) As Long
Private Sub Form_Load()
Dim t As String
Dim k As Long
k = GetKeyboardType(0)
If k = 1 Then t = "PC or compatible 83-key keyboard"
If k = 2 Then t = "Olivetti 102-key keyboard"
If k = 3 Then t = "AT or compatible 84-key keyboard"
If k = 4 Then t = "Enhanced(IBM) 101-102-key keyboard"
If k = 5 Then t = "Nokia 1050 keyboard"
If k = 6 Then t = "Nokia 9140 keyboard"
If k = 7 Then t = "Japanese keyboard"
MsgBox "Type of keyboard : " & t
End Sub
Сразу после запуска в MsgBox появиться сообщение о типе клавиатуры.
Еще можно узнать некоторые параметры, а именно, частоту повторения символа при удержании клавиши в нажатом состоянии и время задержки через которое это повторение происходит. Добавьте к своему проекту модуль и туда запишите:
Public Const SPI_GETKEYBOARDSPEED = 10
Public Const SPI_GETKEYBOARDDELAY = 22
Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, _
ByVal fuWinIni As Long) As Long
В форму проекта запишите следующий код( предварительно создав две кнопки):
Private Sub Command1_Click()
Dim r As Long
q = SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, r, 0)
MsgBox "Частота повторения = " & r & " символ.в сек."
End Sub
Private Sub Command2_Click()
Dim Z As Long
q = SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, Z, 0)
MsgBox "Задержка повторения = " & Z & " Seconds"
End Sub
Практического применения этим знаниям я , честно говоря не нашел. Но как знать, может и пригодиться кому нибудь...

Виталий