![]() |
Tastendruck von Umlauten erzeugen
Hi. Bin schon den ganzen Abend damit beschäftigt, herauszufinden, wie ich denn Umlaute mit z.B.
Delphi-Quellcode:
erzeugen kann? Bei Umlauten kommt aber immer ein anderes Zeichen dabei raus.
keybd_event(Ord(Ü), 0, 0, 0);
Was muss ich machen, damit die Umlaute erzeugt werden? Danke |
Re: Tastendruck von Umlauten erzeugen
Du solltest VKKeyScan anstelle von Ord verwenden wie
![]() |
Re: Tastendruck von Umlauten erzeugen
keybd_event erwartet eine Taste und kein Zeichen. Entsprechend wird dort nicht nach Groß-/Kleinschreibung, Tastaturlayout etc. unterschieden. Daher musst du (wie in dem geposteten Link) beschrieben erst ermitteln welche Tasten notwendig sind um ein für ein Zeichen einen Tastendruck zu simulieren.
|
Re: Tastendruck von Umlauten erzeugen
Ok. Stimmt. Ich glaube das ist auch genau das was ich suche, nur verstehe ich den Code nicht ganz.
Was muss ich denn übergeben um ein großes A zu erzeugen (wegen lWithShift)?
Delphi-Quellcode:
procedure EnterText(AText: String);
var lCount : Integer; lScanCode : Smallint; lWithAlt, lWithCtrl, lWithShift : Boolean; begin for lCount := 1 To Length(AText) Do begin lScanCode := VkKeyScan(AText[lCount]); //Ermitteln ob Shift gedrückt wurde lWithShift := lScanCode and (1 shl 8) <> 0; //Ermitteln ob Strg gedrückt wurde lWithCtrl := lScanCode and (1 shl 9) <> 0; //Ermitteln ob Alt gedrückt wurde lWithAlt := lScanCode and (1 shl 10) <> 0; if lWithShift then keybd_event(VK_SHIFT, 0, 0, 0); if lWithCtrl then keybd_event(VK_CONTROL, 0, 0, 0); if lWithAlt then keybd_event(VK_MENU, 0, 0, 0); keybd_event(lScanCode, 0, 0, 0); keybd_event(lScanCode, 0, KEYEVENTF_KEYUP, 0); if lWithAlt then keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0); if lWithCtrl then keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); if lWithShift then keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); end; end; |
Re: Tastendruck von Umlauten erzeugen
Um ein großes A zu erzeugen musst du die Funktion so aufrufen:
Delphi-Quellcode:
um ein 'Wort' zu erzeugen so:
EnterText('A');
Delphi-Quellcode:
Ich hoffe ich habe die Frage jetzt nicht falsch verstanden.
EnterText('Wort');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz