Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Sendkeys, "Enter" einbauen (https://www.delphipraxis.net/191585-sendkeys-enter-einbauen.html)

t.roller 31. Jan 2017 07:59

AW: Sendkeys, "Enter" einbauen
 
@TE: Aus Deinem Code geht nicht hervor, was die RETURN-Simulation machen soll.
Die 2 Zeilen Code brauchen natürlich ein Objekt, das auf die RETURN-Simulation reagiert - siehe Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
caption:= 'B1';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Button1.SetFocus;

Keybd_Event(VK_RETURN,0,0,0); //Taste drücken
Keybd_Event(VK_RETURN,0,KEYEVENTF_KEYUP,0); //Taste loslassen

end;

derseitzer 31. Jan 2017 08:35

AW: Sendkeys, "Enter" einbauen
 
ehrlich gesagt weiß ich das selber nicht genau:)
Ich wollte einfach erstmal einen Text schreiben indem ich Tastendrücke simuliere und wollte auch ein "Return" simulieren können:)
Also so wirklich die Idee dahinter hatte ich nicht :|

t.roller dein Code hat geklappt wie gesagt, ich habe ihn nur falsch angewendet.. er wurde nie ausgeführt, dort, wo ich ihn als erstes implementiert hatte:). Funktioniert jetzt alles:)
Danke an alle:)))

haentschman 31. Jan 2017 09:11

AW: Sendkeys, "Enter" einbauen
 
Zitat:

Als ich meinem Therapeuten gesagt habe, alle ignorieren mich sagte er: Der nächste Bitte...
...:roll:

derseitzer 31. Jan 2017 10:12

AW: Sendkeys, "Enter" einbauen
 
haentschman wie gesagt, ich wollte einfach mal einen Text schreiben über simulierte Tasten, mehr nicht :-D
Ich gebe einen String vor und die Anzahl der Wiederholungen. die Checkbox macht eben das return, oder eben kein return zischen den Wiederholungen..
beispiel: string: ABC, WDH: 5, checkbox:=True ->
ABC
ABC
ABC
ABC
ABC

Code:
procedure TForm1.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));
    if Checkbox1.checked=True then
     begin
     Keybd_Event(VK_RETURN, 1, KEYEVENTF_EXTENDEDKEY, 0) ;
     Keybd_Event(VK_RETURN, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
     end;
  finally
    FreeMem(InputEvents);
  end;
end;

haentschman 31. Jan 2017 15:07

AW: Sendkeys, "Enter" einbauen
 
Hallo...:P
Zitat:

ich wollte einfach mal einen Text schreiben über simulierte Tasten, mehr nicht
...dann ist es ja gut. 8-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr.
Seite 2 von 2     12   

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