![]() |
Delphi-Version: 10 Seattle
Sendkeys, "Enter" einbauen
Hey Leute,
Ich habe im Internet diesen Code gefunden der auch einwandfrei funktioniert:
Code:
Jetzt möchte ich aber auch die Möglichkeit haben "Enter" zu simulieren.. hat jemand eine Idee, wie ich den Code modifizieren könnte? Oder hat jemand einen Code, mit dem beides funktoniert
uses
Windows; {$POINTERMATH ON} procedure SendKeys(const S: String); var InputEvents: PInput; I, J: Integer; begin if S = '' then Exit; GetMem(InputEvents, SizeOf(TInput) * (Length(S) * 2)); try J := 0; for I := 1 to Length(S) do begin InputEvents[J].Itype := INPUT_KEYBOARD; InputEvents[J].ki.wVk := 0; InputEvents[J].ki.wScan := Ord(S[I]); InputEvents[J].ki.dwFlags := KEYEVENTF_UNICODE; InputEvents[J].ki.time := 0; InputEvents[J].ki.dwExtraInfo := 0; Inc(J); InputEvents[J].Itype := INPUT_KEYBOARD; InputEvents[J].ki.wVk := 0; InputEvents[J].ki.wScan := Ord(S[I]); InputEvents[J].ki.dwFlags := KEYEVENTF_UNICODE or KEYEVENTF_KEYUP; InputEvents[J].ki.time := 0; InputEvents[J].ki.dwExtraInfo := 0; Inc(J); end; SendInput(J, InputEvents[0], SizeOf(TInput)); finally FreeMem(InputEvents); end; end; und mit dem ich diesen hier ersetzen könnte? Viele Dank schon mal im voraus :) |
AW: Sendkeys, "Enter" einbauen
Delphi-Quellcode:
Keybd_Event(VK_RETURN,0,0,0); //Taste drücken
Keybd_Event(VK_RETURN,0,KEYEVENTF_KEYUP,0); //Taste loslassen |
AW: Sendkeys, "Enter" einbauen
Ich wäre ja erstmal auf die doofe Idee gekommen und hätte mir die Dokumentation zu
![]() also ![]() ![]() ![]() ![]() |
AW: Sendkeys, "Enter" einbauen
Vielen Dank!! noch eine Frage: wenn ich in meiner sendkeys funktion etwas auf meiner Tform einbinden will (z.b. ein label1) erkennt mein Programm das nicht, wahrscheinlich weil ich in der funktion nur "(const S: String)" übergebe..
siehe Code... wie baue ich noch den "Sender: TObejct" ein? so: (Sender: TObject, const S: String); funktioniert nicht :/ |
AW: Sendkeys, "Enter" einbauen
Hmm..
einfach mit SendKeys(#13); versucht? |
AW: Sendkeys, "Enter" einbauen
Vielleicht hilfst..
gruss |
AW: Sendkeys, "Enter" einbauen
Code:
Habe es hiermit probier, allerdings macht er immernoch kein Enter:/
{$POINTERMATH ON}
procedure TForm1.SendKeys(const S: String); var InputEvents: PInput; I, J: Integer; begin if S = '' then begin if Checkbox1.checked=True then begin Keybd_Event(VK_RETURN,0,0,0); //Taste drücken Keybd_Event(VK_RETURN,0,KEYEVENTF_KEYUP,0); //Taste loslassen end; Exit; end; GetMem(InputEvents, SizeOf(TInput) * (Length(S) * 2)); try J := 0; for I := 1 to Length(S) do begin InputEvents[J].Itype := INPUT_KEYBOARD; InputEvents[J].ki.wVk := 0; InputEvents[J].ki.wScan := Ord(S[I]); InputEvents[J].ki.dwFlags := KEYEVENTF_UNICODE; InputEvents[J].ki.time := 0; InputEvents[J].ki.dwExtraInfo := 0; Inc(J); InputEvents[J].Itype := INPUT_KEYBOARD; InputEvents[J].ki.wVk := 0; InputEvents[J].ki.wScan := Ord(S[I]); InputEvents[J].ki.dwFlags := KEYEVENTF_UNICODE or KEYEVENTF_KEYUP; InputEvents[J].ki.time := 0; InputEvents[J].ki.dwExtraInfo := 0; Inc(J); end; SendInput(J, InputEvents[0], SizeOf(TInput)); finally FreeMem(InputEvents); end; end; |
AW: Sendkeys, "Enter" einbauen
Moin...8-)
Zitat:
Vieleicht gibt es auch was einfaches um mit ENTER zum nächsten Feld zu gelangen. :zwinker: (nur eine Vermutung) |
AW: Sendkeys, "Enter" einbauen
hab meinen Fehler gefunden:) Diese Entertaste die ich oben implementiert habe zu simulieren, wird nie ausgeführt, da der Code durchlaufen wird, dann eben die Schleife und das wars.. Habe den Code also einfach falsch implementiert :oops:
|
AW: Sendkeys, "Enter" einbauen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 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