AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sendkeys, "Enter" einbauen

Ein Thema von derseitzer · begonnen am 30. Jan 2017 · letzter Beitrag vom 31. Jan 2017
Antwort Antwort
Seite 1 von 2  1 2      
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Sendkeys, "Enter" einbauen

  Alt 30. Jan 2017, 14:00
Delphi-Version: 10 Seattle
Hey Leute,
Ich habe im Internet diesen Code gefunden der auch einwandfrei funktioniert:
Code:
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;
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
und mit dem ich diesen hier ersetzen könnte? Viele Dank schon mal im voraus
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#2

AW: Sendkeys, "Enter" einbauen

  Alt 30. Jan 2017, 14:45
Delphi-Quellcode:
Keybd_Event(VK_RETURN,0,0,0); //Taste drücken
Keybd_Event(VK_RETURN,0,KEYEVENTF_KEYUP,0); //Taste loslassen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Sendkeys, "Enter" einbauen

  Alt 30. Jan 2017, 15:10
Ich wäre ja erstmal auf die doofe Idee gekommen und hätte mir die Dokumentation zu MSDN-Library durchsuchenSendInput angesehn und mich da bis zur gewünschten Information duchgeklickt.

also
https://msdn.microsoft.com/de-de/lib.../ms646310.aspx
https://msdn.microsoft.com/de-de/lib.../ms646270.aspx
https://msdn.microsoft.com/de-de/lib.../ms646271.aspx
https://msdn.microsoft.com/de-de/lib.../dd375731.aspx
$2B or not $2B
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#4

AW: Sendkeys, "Enter" einbauen

  Alt 30. Jan 2017, 15:13
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 :/
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
972 Beiträge
 
Delphi 6 Professional
 
#5

AW: Sendkeys, "Enter" einbauen

  Alt 30. Jan 2017, 18:18
Hmm..

einfach mit

SendKeys(#13);

versucht?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Sendkeys, "Enter" einbauen

  Alt 30. Jan 2017, 20:18
Vielleicht hilfst..

gruss

Geändert von EWeiss (11. Jul 2019 um 17:13 Uhr)
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: Sendkeys, "Enter" einbauen

  Alt 31. Jan 2017, 08:21
Code:
{$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;
Habe es hiermit probier, allerdings macht er immernoch kein Enter:/
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#8

AW: Sendkeys, "Enter" einbauen

  Alt 31. Jan 2017, 08:32
Moin...
Zitat:
Ich habe im Internet diesen Code gefunden der auch einwandfrei funktioniert:
Was hast du denn vor? Was soll der Code deiner Meinung nach tun?
Vieleicht gibt es auch was einfaches um mit ENTER zum nächsten Feld zu gelangen. (nur eine Vermutung)

Geändert von haentschman (31. Jan 2017 um 08:46 Uhr)
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#9

AW: Sendkeys, "Enter" einbauen

  Alt 31. Jan 2017, 08:45
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
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#10

AW: Sendkeys, "Enter" einbauen

  Alt 31. Jan 2017, 08:50
Zitat:
Was hast du denn vor? Was soll der Code deiner Meinung nach tun?
...bitte antworte noch auf die Rückfrage.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:12 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