Extrahieren von Tastaturlayouts aus Windows

8

OK, das ist eine etwas seltsame Frage.

Wir haben eine Touchscreen-Anwendung (d. h. keine Tastatur). Wenn Benutzer Text eingeben müssen, zeigt die Anwendung eine virtuelle Tastatur - von Hand in WinForms erstellt.

Diese Dinge für jede neue Sprache von Hand zu machen, ist Affearbeit. Ich denke, dass Windows muss diese Tastaturlayout Informationen irgendwo in einer DLL verstecken. Würde es trotzdem etwas geben, um diese Information aus Fenstern herauszuholen?

Andere Ideen willkommen (Ich denke, zumindest die Sache aus einer XML-Datei generieren muss besser sein, als es in VS von Hand).

(Anmerkung: alles was gesagt habe, ich bemerke, dass es eine japanische Tastatur, eine Zustandsmaschine und alles ... gibt, so dass XML möglicherweise nicht ausreicht)

UPDATE : ziemlich gute Serie zu diesem Thema (glaube ich) hier

    
Benjol 19.03.2009, 10:44
quelle

4 Antworten

6

Microsoft Keyboard Layout Creator kann Systemtastaturen laden und als .klc Dateien . Da es in .NET geschrieben ist, können Sie Reflektor verwenden, um zu sehen, wie es funktioniert, und Reflektion verwenden, um es zu steuern. Hier ist eine ZIP-Datei mit .KLC-Dateien für die 187 Tastaturen in Windows 8 , die mit Hilfe der folgenden C # erstellt wurde. Code. Beachten Sie, dass ich dies ursprünglich für Windows XP geschrieben habe, und jetzt mit Windows 8 und der Bildschirmtastatur, es ist wirklich langsam und scheint die Taskleiste zu stürzen: / Allerdings funktioniert es:)

%Vor%

Im Grunde erhält es eine Liste aller Tastaturen auf dem System, lädt diese dann in MSKLC, legt den "Speichern unter" -Dateinamen fest, legt fest, ob die benutzerdefinierten Tastatureigenschaften bereits konfiguriert sind, und simuliert dann a Klicken Sie auf die Datei - & gt; Menüpunkt speichern.

    
andrewdotn 08.05.2009, 01:17
quelle
2

Warum verwenden Sie nicht die Bildschirmtastatur (osk.exe)? Sieht so aus, als hättest du das Rad neu erfunden. Und nicht der einfachste!

    
Serge Wautier 19.03.2009 13:48
quelle
1

Ich weiß, wo der Pfad dieser DLL-Dateien ist:

In Ihrer Registrierung sehen Sie:

%Vor%

wo jeder Zweig einen Wert wie "Layout File"="KBDSP.dll" hat. Das Stammverzeichnis ist

%Vor%

und

%Vor%

Das sind alle Tastaturbelegungsdateien. Zum Beispiel bedeutet KBDUS.dll "Tastatur für US".

Ich habe versucht, die DLL-Datei mit meiner benutzerdefinierten DLL von MSKLC zu ersetzen, und ich fand, dass es die Layout-Mapping-Bilder automatisch in der "Sprache" - "Eingabemethode" - "Vorschau" lädt:

Wir wissen also, dass das Mapping in der DLL vorhanden ist.

    
WesternGun 06.06.2017 14:03
quelle
0

Bitte überprüfen Sie die Windows API

%Vor%

Überprüfen Sie MSDN hier

    
NileshChauhan 19.03.2009 10:48
quelle

Tags und Links