Frage

Gibt es eine Möglichkeit, um programmatisch herauszufinden, welche Art von Tastatur ein Computer hat (das heißt, wo Tasten angeordnet sind, und welche zusätzlichen Tasten vorhanden sind, in welchen Orten)?

ein kleiner Fehler ist annehmbar, wenn die Tastatur sehr nicht-Standard ist, aber im allgemeinen ist der Punkt ist eine On-Screen Tastatur artige Anwendung zu konstruieren, die dynamisch das Tastaturlayout auf dem Bildschirm, mit hohen Genauigkeit ziehen.

War es hilfreich?

Lösung

Es gibt keinen Mechanismus, mit dem eine Tastatur wie Windows, was sein physisches Layout Aussehen berichten. Einfach mit der Windows-Version einer Tastatur auf dem Bildschirm zu sehen, osk.exe. Es scheint den Formfaktor der Maschine (Laptop vs Desktop) in die Lage sein, zu erraten, aber auf meinem Laptop nicht das Layout der Tastatur entspricht.

Mit dem osk.exe Layout als Vorlage so niemand beschweren, dass Sie nicht gut überein.

Andere Tipps

wenn sie an einen Computer angeschlossen ist, sendet Tastaturen „Scan-Codes“ an das Betriebssystem. Unter Windows wird Scan-Codes dann in virtuelle Tasten (eine Hardware-unabhängige Abbildung der Tastatur) dann auf reale Zeichen umgewandelt.

MapVirtualKeyEx() Funktion der Windows-API ermöglicht es Ihnen, zwischen Scan-Codes, virtuellen Tasten und Zeichen zu übersetzen. es sollte auch in der Lage zu sagen, ob ein Schlüssel ist nicht vorhanden.

zusammen mit GetKeyboardLayout() der sagen Sie, welche keybaord an jedem beliebigen Punkt in der Zeit, es sollten Sie ermöglichen, bauen eine ziemlich genaue Karte der Tastatur.

(Tastaturlayout für verschiedene laufende Anwendungen unterschiedlich sein kann) aktiv ist

Wie auch immer, haben einen Blick auf die keyboard input section of the MSDN

Ich will hinzufügen, dass alle Tastaturen fast das gleiche Layout haben. obwohl es keine Möglichkeit, wo ein Schlüssel zu wissen, ist physisch befindet, können Sie wahrscheinlich aus dem Scan-Code und Grundkenntnisse der eigenen Tastaturen erraten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top