Dead-Keys bei LowLevelKeyboardHook
-
Hallo zusammen,
Ich habe schon seit längerem ein Problem mit ToAscii() das ich durch googeln, ausprobieren, studieren und nachschlagen nicht lösen konnte. Es geht dabei um die Dead-Keys (^, `, ¨, u.s.w.) bei einem LowLevelKeyboardHook das in Folge eines weiteren Tastendrucks jeweils 1 spezielles oder 2 Zeichen anzeigen soll.
^ und o -> ô
^ und k -> ^kDrücke ich jetzt aber ^ und lasse den vkCode durch ToAscii() laufen, flusht er den Dead-Key und im Zielfenster treten dann 2 Dead-Keys auf - spezielle Zeichen sind auch nicht mehr möglich:
^ und o -> ^^o
^ und k -> ^^kIch würde mich wirklich freuen wenn jemand Rat weiss. Bin nämlich ziemlich verzweifelt weil ich bisher noch niemand finden konnte der mir helfen kann.
Grüsse,
bleed_ch
-
Hast Du schon mal ToUnicodeEx versucht?
http://msdn.microsoft.com/en-us/library/ms646322(VS.85).aspx
-
Herzlichen Dank für deine Antwort, hab mich richtig gefreut...
Yep, habe ich. So auch bei: ToAscii, ToAsciiEx, ToUnicode, ToUnicodeEx. Alles funktioniert perfekt bis auf die Dead-Keys und die Lösung will sich einfach nicht zeigen.
Das Ding ist ja, diese Funktionen returnen bei Dead-Keys -1, bei Keys die nicht anzeigbar sind (wie CTRL, ALT, u.s.w.) 0, bei normalen Chars 1 und bei Chars in folge eines Dead-Keys 2 (^ und danach k => ^k). Nur funktioniert es wirklich nicht - ich habe noch nie 2 erhalten. Er flusht nach dem ersten Aufruf der Funktion sofort die Dead-Keys und printed sie im Zielfokus doppelt...
^ und k => ^^k
Lasse ich die Funktion weg, funktioniert alles Regulär - als ob nach dem Hook die Funktion ebenfalls aufgerufen wird... Weisst du vielleicht weiter?
Grüsse,
bleed_ch
-
Doppeltes aufrufen der Funktion hilft bei dieser Problematik