AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi das gedückthalten einer taste simulieren
Thema durchsuchen
Ansicht
Themen-Optionen

das gedückthalten einer taste simulieren

Ein Thema von ghost007 · begonnen am 22. Okt 2006 · letzter Beitrag vom 30. Okt 2006
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#11

Re: das gedückthalten einer taste simulieren

  Alt 26. Okt 2006, 22:29
öhm, wollte ma fragen ob noch jmd ne idee hat, weil das ganze hier anscheinend ins stoppen geraten ist.

MfG - ghost
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#12

Re: das gedückthalten einer taste simulieren

  Alt 27. Okt 2006, 21:03
AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH H I L F E bitte bitte bitte helft mir

MfG - Ghost
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von Light
Light

Registriert seit: 3. Feb 2006
Ort: Paderborn NRW
123 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: das gedückthalten einer taste simulieren

  Alt 28. Okt 2006, 16:15
Hi @all,

wie versprochen kommt hier eine kleine DemoApplication
wo unter anderem das mit dem Tastatur ereignissen gezeigt wird.
Ich hab den Quelltext eigentlich aussagekräftig mit Komentaren versehen..
Compiliert und erstellt mit Turbo Delphi Explorer
es liegt auch die Fertige Exe mit im Zip archive. Dieses ist Selbstentpackend damit aufjedenfall jeder an die daten ran kommt...
Falls ihr Fragen dazu habt schreibt mir ne pm oder halt hier rein.

Noch kurz zu bedinung des Programms:
es arbeitet hauptsächlich mit einem SystemTrayIcon.
Über das PopUpMenü dieses kann man eigentlich alles was es gibt (is ja nich viel) steuern.

Also es ist wirklich nur ganz klein.
Wenn man in Edit2 einen Text eingibt und dann im TrayiconPopup den Punkt Key-Go! auswählt wird der Darin enthaltene Text original getreu (also mit Klein/Großschreibung) als Keybord messages ins ausgegeben..
Sonderzeichen (auser ' ') gehen allerdings nicht!

Bin über eure Meinung gespannt

Leuchtende Grüße

Stefan
Angehängte Dateien
Dateityp: exe systemmanager_pack_939.exe (578,7 KB, 28x aufgerufen)
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#14

Re: das gedückthalten einer taste simulieren

  Alt 28. Okt 2006, 22:32
-.- das is aber irgendwie nich die antwort auf meine frage, weil man damit auch nicht das >>gedrückthalten<< einer taste simulieren kann

MfG - Ghost
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#15

Re: das gedückthalten einer taste simulieren

  Alt 28. Okt 2006, 23:31
Also, das ist im Prinzip ganz einfach.

Mit

Keybd_Event(Ord('A'),0,0,0); // entspricht dem KeyDown wird z.B. die Taste 'A' solange gedrückt (gehalten) bis man

Keybd_Event(Ord('A'),0,KEYEVENTF_KEYUP,0); // entspricht dem KeyUp aufruft. Will man z.B. Shift und A drücken, ruft man nacheinander auf

Delphi-Quellcode:
Keybd_Event(VK_SHIFT,0,0,0);
Keybd_Event(Ord('A'),0,0,0);
und "läßt diese dann irgendwann wieder los" durch

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

Grüsse
...Doc
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#16

Re: das gedückthalten einer taste simulieren

  Alt 29. Okt 2006, 02:28
hi,
das is ja das problem dieser befehl hier:
Keybd_Event(Ord('A'),0,0,0); beinahltet anscheinent das loslassen schon.

MfG - Ghost
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#17

Re: das gedückthalten einer taste simulieren

  Alt 29. Okt 2006, 10:20
Moin,

ich habe das gerade mal getestet...

Durch den Befehl wird KeyDown und KeyPress ausgelöst (kein KeyUp, die Taste bleibt also gedrückt).

Im Gegensatz zur echten Tastatur wird das KeyPress Ereignis, was z.B. für die Darstellung der Zeichen in visuellen Komponenten zuständig ist nur 1x ausgelöst. Es kommt jetzt darauf an, was Du machen möchtest. Prüft die Anwendung, die Du steuern möchtest den KeyDown oder den KeyPress Event?

Möchtest Du den KeyPress mehrfach ausführen, geht das z.B. so:

Delphi-Quellcode:
for i:=1 to 100 do // = 100x KeyDown/Press/Up
begin
  Keybd_Event(Ord('A'),0,0,0); // entspricht dem KeyDown + 1x KeyPress
  Keybd_Event(Ord('A'),0,KEYEVENTF_KEYUP,0); // entspricht dem KeyUp
  sleep(10); // wenn eine kurze Pause gewünscht
end;
Allerdings entspricht dies dann nicht dem "Gedrückthalten" sondern dem hundertmaligen Drücken und Loslassen der Taste.


Grüsse
...Doc
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#18

Re: das gedückthalten einer taste simulieren

  Alt 29. Okt 2006, 10:31
Hallo,

nimm doch den Vorschlag von Neutral General #7 und bau Keybd_Event entsprechend ein, z.B.:
Delphi-Quellcode:
var
  Form1: TForm1;
  BooleanVariable : Boolean;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  BooleanVariable := False;
  Edit1.setfocus;
  repeat
    Keybd_Event(Ord('A'),0,0,0);
    sleep(50);
    Application.Processmessages;
  until BooleanVariable;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  BooleanVariable := True;
end;
Keybd_Event für KeyUp ist IMHO nicht erforderlich.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#19

Re: das gedückthalten einer taste simulieren

  Alt 29. Okt 2006, 10:38
Stimmt, das Key Up kann weggelassen werden. Allerdings wird dann trotzdem jeweils KeyDown und KeyPress (anstatt nur KeyPress) aufgerufen. Zum Schluss dann das KeyUp nicht vergessen.

Und ein Sleep (oder sonstige Verzögerung) ist zwingend erforderlich! Gerade noch einmal probiert...

Grüsse
...Doc
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#20

Re: das gedückthalten einer taste simulieren

  Alt 29. Okt 2006, 14:12
hallo,
danke für eure antworten, ich glaube so wie es lannes geschreiben hat, könnte es funktionieren.
Nun habe ich aber folgendes problem, wohin wird das keyevent gesendet? nicht an die application mit dem fokus?

MfG - Ghost
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 02:50 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