![]() |
Keyboard Send Text
Hi,
ich hab ein Problem damit, wenn ich Text senden möchte und dort Umlaute enthalten sind.
Delphi-Quellcode:
Umlaute werden komplett ausgespart, leider werden auch sämtliche Zeichen klein gesendet (Haus = haus | Hüte = hte)
for i := 1 to Length(text) do begin
// press Inp.Itype := INPUT_KEYBOARD; Inp.ki.wVk := Ord(UpCase(text[i])); Inp.ki.dwFlags := 0; SendInput(1, Inp, SizeOf(Inp)); // release Inp.Itype := INPUT_KEYBOARD; Inp.ki.wVk := Ord(UpCase(text[i])); Inp.ki.dwFlags := KEYEVENTF_KEYUP; SendInput(1, Inp, SizeOf(Inp)); Application.ProcessMessages; Sleep(80); end; Hat jemand eine Idee? EDIT: GELÖST siehe ![]() |
AW: Keyboard Send Text
Kannst du genauer erläutern, wohin du den Text "senden" willst? Ist es ein Textfeld von dem du das Fenster-Handle (HWND) kennen würdest? Dann würde ich das über eine
Delphi-Quellcode:
-Message machen. Kurz ausprobiert, funktioniert auch mit Dingen wie جهاد.
WM_CHAR
Ansonsten sind es natürlich nur Kleinbuchstaben, denn du simulierst ja auch kein Drücken auf die Shifttaste. Außerdem verstehe ich den Sinn nicht, die Zeichen (mit Pause) hintereinander zu senden. Packe es doch alles in ein Array und verschicke das einmal mit
Delphi-Quellcode:
.
SendInput
Dass
Delphi-Quellcode:
dem "Virtual Keycode" entspricht halte ich nur für einen glücklichen Zufall, aber da kenne ich mich nicht aus. Wie man Dinge wie "Ü" oder "جهاد" jetzt damit versenden könnte wüsste ich spontan auch nicht.
Ord(System.UpCase(text[i]))
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 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