Tipp 5.19 - Tastaturtyp ermitteln

Wie kann ich den Tastaturtyp und Anzahl der F-Tasten ermitteln?

Mit dieser Funktion können Sie den Tastaturtyp und Anzahl der F-Tasten ermitteln. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.

Api-AufrufeVerwendete Win32-Api-Aufrufe und Typen: GetKeyboardType

Beispiel:

Option Explicit
 
Public Declare Function GetKeyboardType _
    Lib "user32" _
    (ByVal nTypeFlag As Long) As Long
 
Public Sub GetKeyboard( _
           ByRef sTypename As String, _
           ByRef lFKeys As Long)
  '// -----------------------------------------------------
  '// Methode:   | Ermittelt den Tastaturtyp und Anzahl
  '//            | der F-Tasten
  '// -----------------------------------------------------
  '// Parameter: | sTypename - wird mit dem Tastaturtyp
  '//            |             beschrieben
  '//            | lFKeys    - wird mit der Anzahl
  '//            |             Tastaturen beschrieben
  '// -----------------------------------------------------
  '// Rückgabe:  | s.o.
  '// -----------------------------------------------------
  '// Autor:     | Stefan Kulpa
  '//            | EDV Innovation & Consulting - Dormagen
  '// -----------------------------------------------------
  Dim lValue  As Long
  Dim lType   As Long
 
  lValue = GetKeyboardType(0)
  Select Case lValue
  Case 1: sTypename = _
      "IBM PC/AT oder kompatible mit 83 Tasten"
  Case 2: sTypename = _
      "Olivetti 'ICO' Tastatur mit 102 Tasten"
  Case 3: sTypename = _
      "IBM AT oder ähnliche Tastatur mit 84 Tasten"
  Case 4: sTypename = _
      "IBM Erweiterte Tastatur 101 oder 102 Tasten"
  Case 5: sTypename = _
      "Nokia 1050 oder ähnliche Tastatur"
  Case 6: sTypename = _
      "Nokia 9140 oder ähnliche Tastatur"
  Case 7: sTypename = _
      "Japanische Tastatur"
  Case Else: sTypename = _
      "unbekannt"
  End Select
 
  lType = GetKeyboardType(2)
  Select Case lType
  Case 1: lFKeys = 10
  Case 2: lFKeys = 12  '** (manchmal 18)
  Case 3: lFKeys = 10
  Case 4: lFKeys = 12
  Case 5: lFKeys = 10
  Case 6: lFKeys = 24
  Case 7: lFKeys = 0
  Case Else: lFKeys = lType  '** Hardware spezifisch (OEM)
  End Select
 
End Sub