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.
Verwendete 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