Autor Beitrag
siondarth
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 27.06.07 15:41 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 110

Win XP
Delphi (Delphi Win32)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: 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.


Zuletzt bearbeitet von Chryzler am Do 28.06.07 14:27, insgesamt 1-mal bearbeitet
klezmor
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: Mi 27.06.07 17:14 
Um es auf den Punkt zu bringen

_________________
"Beware of bugs in the above code; I have only proved it correct, not tried it." Donald Knuth
siondarth Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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:

ausblenden volle Höhe 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:
dubyi.du.funpic.de/

Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: 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=www.delphi-forum.de/...p?t=68761]das[/url].

Probiers doch mal aus.
siondarth Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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