Tastatur-LanguageCode

21/05/2011 - 09:46 von Hermie | Report spam
Hallo!

Ich möchte gerne die Tastaturlayouts abfragen.
Jetzt habe ich eine serbische Tastatur hinzugefügt.

Jetzt benutze ich den folgenden Code, um den LanguageCode herauszufinden:

(...)
lRet = ActivateKeyboardLayout(lLayouts(i), 0)
lRet = GetKeyboardLayout(0&)
LCID = LoWord(lRet)
(...)

Name: Serbian (Cyrillic)
HKL: 203040794
Name: 00000C1A 'Diesen Wert erhalte ich über GetKeyboardLayoutName
LanguageCodeID: 10266 'Diesen Wert erhalte ich, wenn ich
LoWord(GetKeyboardLayout(0&)) sage

LanguageCodeID sollte aber 3098 sein statt 10266.

Ich denke, irgendwo hapert es noch bei der Umrechnung von Hex zu Dezimal.
Wenn ich 0C1A nach Dezimal umrechnen würde, würde es stimmen, aber ich
kann ja nicht einfach auf Gut Glück die ersten 4 Stellen des Hex-Wertes
abschneiden, oder?

Danke!
Hermie
 

Lesen sie die antworten

#1 Helmut_Meukel
21/05/2011 - 10:42 | Warnen spam
Hermie hatte die Idee :
Hallo!

Ich möchte gerne die Tastaturlayouts abfragen.
Jetzt habe ich eine serbische Tastatur hinzugefügt.

Jetzt benutze ich den folgenden Code, um den LanguageCode herauszufinden:

(...)
lRet = ActivateKeyboardLayout(lLayouts(i), 0)
lRet = GetKeyboardLayout(0&)
LCID = LoWord(lRet)
(...)

Name: Serbian (Cyrillic)
HKL: 203040794
Name: 00000C1A 'Diesen Wert erhalte ich über GetKeyboardLayoutName
LanguageCodeID: 10266 'Diesen Wert erhalte ich, wenn ich
LoWord(GetKeyboardLayout(0&)) sage

LanguageCodeID sollte aber 3098 sein statt 10266.

Ich denke, irgendwo hapert es noch bei der Umrechnung von Hex zu Dezimal.
Wenn ich 0C1A nach Dezimal umrechnen würde, würde es stimmen, aber ich kann
ja nicht einfach auf Gut Glück die ersten 4 Stellen des Hex-Wertes
abschneiden, oder?

Danke!
Hermie



Wie sieht die Funktion LoWord aus (Code?)?

Wenn du eh schon den Hex-Wert hast, liefert dir Right$(HexString,4)
das LowWord als Hexstring. Also nicht die ersten 4 Stellen abschneiden,
sondern die letzten 4 Stellen übrig lassen.

Helmut.

Ähnliche fragen