Entwickler-Ecke

Sonstiges (Delphi) - Tastendruck simulieren!!!


siondarth - Mi 27.06.07 15:41
Titel: Tastendruck simulieren!!!
Hallo,
die Überschrift sagt wahrscheinlich nicht viel aus, liegt aber daran, dass ich nicht genug Zeichen eingeben konnte um zu sagen, was ich für ein Problem habe. Aber jetzt zum wesentlichem.
Ich habe ein Programm "A" am lafen und will jetzt ein Programm "B" schreiben, dass das Programm "A" denken lässt, ich hätte eine Taste auf der Tastatur betätigt. Dieses Problem ist mir schon öfters in ähnlichen Variationen begegnet und muss jetzt endlich gelöst werden, (falls es überhaupt geht).

Mein jetziges Problem, was euch auch als Beispiel dienen soll um mein Problem zu lösen:
Ich habe ein Spiel, bei dem ich alle 17 Secunden die Taste "2" und alle 30 Secunden die Taste "P" auf der Tastatur betätigen muss (fragt bitte net warum). Da dies mich allerdings nervt, dachte ich daran ein Programm zu schreiben, das dies für mich erledigt.

Ich bitte euch um Hilfe bei der Lösung meines Problems, wie gesagt, falls so etwas überhaupt realisierbar ist. Egal ob ihr mich mit Delphi-Code versorg oder irgendwelche anderen Anregungen geben könnt.

PS: (Was ich noch vergessen hab zu sagen). Das Programm soll nach einer Stunde aufhören die Tasten zu betätigen.


24karatboy - Mi 27.06.07 16:06

ich würde sagen du machst nen hook oder nen hotkey auf die tasten die du benötigst und lässt diesen z.b hotkey dann in dem anderen programm betätigen. so würde ich mir das jetzt denken praktisch kann ich dir aber leider keinen lösungsvorschlag geben da ich mit hooks und hotkeys noch nichts gemacht habe.

mfg


Chryzler - Mi 27.06.07 17:09

user profile icon24karatboy hat folgendes geschrieben:
ich würde sagen du machst nen hook oder nen hotkey auf die tasten die du benötigst und lässt diesen z.b hotkey dann in dem anderen programm betätigen. so würde ich mir das jetzt denken praktisch kann ich dir aber leider keinen lösungsvorschlag geben da ich mit hooks und hotkeys noch nichts gemacht habe.

mfg

Mit nem Hook oder nem Hotkey kannst du keine Tastendrücke simulieren, du wirst nur benachrichtigt, falls eine bestimmte Taste gedrückt wurde.
Das was du brauchst ist, das [http://www.delphi-forum.de/viewtopic.php?t=68761].


klezmor - Mi 27.06.07 17:14

Um es auf den Punkt [http://www.delphi-library.de/viewtopic.php?t=71835&highlight=] zu bringen


siondarth - Do 28.06.07 10:54

vielen dank leute, ihr wart mir ne große Hilfe. wird ein weilchen dauern bis ich das programm geschrieben hab aber wenn ichs fertig kriege, dann stell ichs auf meine seite.


siondarth - Do 28.06.07 12:27

so habe jetzt ein Testprogramm geschrieben und es funktioniert auch soweit. Klicke ich z.B. in das Editfeld von google, so wird wie gewünscht alle fünf sec. ein tastendruck simuliert aber ich habe das problem, das es bei dem Spiel, wofür ich es ja machen wollte nicht funktioniert.

Hier der Code:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
    keybd_event(MapVirtualKey($021), $1E,0,0);
    keybd_event(MapVirtualKey($021), $1E, KEYEVENTF_KEYUP, 0);
end;

end.


Hier könnt ihr euch das programm auch runterladen falls ihr es selbst ausprobieren wollt:
http://dubyi.du.funpic.de/

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


Chryzler - Do 28.06.07 14:29

user profile iconChryzler hat folgendes geschrieben:
Mit nem Hook oder nem Hotkey kannst du keine Tastendrücke simulieren, du wirst nur benachrichtigt, falls eine bestimmte Taste gedrückt wurde.
Das was du brauchst ist, [url=http://www.delphi-forum.de/viewtopic.php?t=68761]das[/url].

Probiers doch mal aus.


siondarth - Do 28.06.07 21:32

ok danke ich werde schauen was ich tun kann (glaub habs jetzt erst richtig verstanden). wird wie immer ein weilchen dauern aber ich werde euch über meine Erfolge oder misserfolge informieren