Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi das gedückthalten einer taste simulieren (https://www.delphipraxis.net/79421-das-gedueckthalten-einer-taste-simulieren.html)

ghost007 22. Okt 2006 02:23


das gedückthalten einer taste simulieren
 
Hallo,
ich glaube der titel sagt schon fast alles ;).
Ich möchte das gedrückthalten einer taste an eine anwendung senden.
Wie mach ich das?

MfG - Ghost

Light 22. Okt 2006 04:57

Re: das gedückthalten einer taste simulieren
 
Hi Ghost,

das ist ganz einfach:
Es gibt eine Message um eine Taste zu drücken-
und dazu gibt es auch die Passende Message um die Taste
wieder los zu lassen...

Delphi-Quellcode:
  Keybd_Event(Ord('H'),0,0,0);
  Keybd_Event(Ord('H'),0,KEYEVENTF_KEYUP,0);

  Keybd_Event(Ord('A'),0,0,0);
  Keybd_Event(Ord('A'),0,KEYEVENTF_KEYUP,0);

  Keybd_Event(Ord('L'),0,0,0);
  Keybd_Event(Ord('L'),0,KEYEVENTF_KEYUP,0);

  Keybd_Event(Ord('L'),0,0,0);
  Keybd_Event(Ord('L'),0,KEYEVENTF_KEYUP,0);

  Keybd_Event(Ord('O'),0,0,0);
  Keybd_Event(Ord('O'),0,KEYEVENTF_KEYUP,0);

  Keybd_Event(Ord(13),0,0,0);  //13 steht für die Entertaste
  Keybd_Event(Ord(13),0,KEYEVENTF_KEYUP,0);
Ansonsten gibt natürlich auch noch ganz viele andere Infos in dieser Richtung hier in der DP... Die Such freut sich :lol:

Leuchtende Grüße

Stefan


alias Light

ghost007 22. Okt 2006 10:26

Re: das gedückthalten einer taste simulieren
 
Hi,
danke für die schnelle antwort.
Aber das mit dem keyup funktioniert nicht... anscheinend nur bie shift tasten.
Was mach ich falsch?
Delphi-Quellcode:
procedure TForm1.startApressClick(Sender: TObject);
begin
  Edit1.SetFocus;
  keybd_event(Ord('A'), 0, 0, 0);
end;

procedure TForm1.stopApressClick(Sender: TObject);
begin
  Edit1.SetFocus;
  keybd_Event(Ord('A'),0,KEYEVENTF_KEYUP,0);
end;
MfG - Ghost

Namenloser 22. Okt 2006 11:05

Re: das gedückthalten einer taste simulieren
 
Ich nehme an, in dem Augenblick, in dem der Button StopAPress gedrückt wird verliert Edit1 den Fokus, sodass die Tastendrücke nicht mehr gesendet werden.

Light 22. Okt 2006 11:10

Re: das gedückthalten einer taste simulieren
 
Hi Ihr,

habs extra grad noch mal ausprobiert-
bei mir funktioniert es!

Leuchtende Grüße

Stefan

ghost007 22. Okt 2006 15:06

Re: das gedückthalten einer taste simulieren
 
hi,
d.h. er schreibt in deine edit lauter As bis du den 2. button drückst und er aufhört?

MfG - Ghost

P.S.Kannste vll dein project, indem das funst uploaden?

Neutral General 22. Okt 2006 15:11

Re: das gedückthalten einer taste simulieren
 
mhh wenn das Edit in deinem eigenen Programm ist dann machs doch einfach so:

Delphi-Quellcode:
repeat
 Edit1.Text := Edit1.Text + 'a';
 Application.Processmessages;
until BooleanVariable;
das in den ersten Button und in dem Zweiten:

Delphi-Quellcode:
BooleanVariable := true;
find ich einfacher...

Gruß
Neutral General

ghost007 22. Okt 2006 17:48

Re: das gedückthalten einer taste simulieren
 
hi,
danke für dienen tipp, aber das edit dient nur zum testen, normalerweise will ich die keys an eine andere anwendung senden.

MfG - Ghost

Light 23. Okt 2006 15:07

Re: das gedückthalten einer taste simulieren
 
Hi Ihr,

Bin grad nicht am Entwicklungsrechner..
Sobald ich den wieder zu verfügung hab stell ichs rein!


Leuchtende Grüße

Stefan

ghost007 23. Okt 2006 19:54

Re: das gedückthalten einer taste simulieren
 
oh, vielen dank =)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 Uhr.
Seite 1 von 3  1 23      

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