AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ToUnicodeEx - "fremdes" Tastaturlayout

Ein Thema von Neutral General · begonnen am 21. Okt 2015 · letzter Beitrag vom 21. Okt 2015
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

ToUnicodeEx - "fremdes" Tastaturlayout

  Alt 21. Okt 2015, 14:23
Hallo,

Der Titel ist schwer zu beschreiben und ist daher nicht zu 100% aussagekräftig :/
Es geht darum dass ich Scancode + VKey mit ToUnicodeEx in ein Zeichen umwandle.
Über den letzten Parameter gebe ich den "input locale identifier" (Tastaturlayout) des gewünschten Landes an.

Das funktioniert soweit auch recht gut. Allerdings funktioniert es z.T. nicht wenn ich den übergebenen ILI nicht zu den Eingabesprache in Windows hinzugefügt habe.
Füge ich die Sprache hinzu (Bulgarisch z.B.) dann funktioniert es. Danach kann ich die Eingabesprache auch direkt wieder rausschmeißen und es funktioniert immernoch - bis es dann irgendwann nicht mehr funktioniert. Alles etwas seltsam.

Ich hoffe das klingt nicht zu verwirrend.
Hier ist etwas Beispielcode:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  ScanCodeTasteA = 30;
  ILI_Bulgarien = $F0AA0402; // Herausgefunden per GetKeyboardLayout bei aktivem Bulg. Tastaturlayout
var
  vkey: Cardinal;
  kbState: Array[0..255] of Byte;
  buff: WideChar;
begin
  FillChar(kbState[0], SizeOf(kbState), 0);

  vkey := MapVirtualKeyEx(ScanCodeTasteA, MAPVK_VSC_TO_VK, ILI_Bulgarien);
  ToUnicodeEx(vkey, ScanCodeTasteA, @kbState[0], @buff, 1, 0, ILI_Bulgarien);
  Caption := Buff;
end;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: ToUnicodeEx - "fremdes" Tastaturlayout

  Alt 21. Okt 2015, 14:37
Okay hat sich erledigt.
Man kann/sollte nicht den ILI direkt angeben sondern diesen über LoadKeyboardLayout laden/abfragen.
Dann funktioniert es zuverlässig, selbst wenn die Sprache in Windows nicht als Eingabesprache definiert ist.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz