AGB  ·  Datenschutz  ·  Impressum  







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

Tastensimilation an Programm senden

Ein Thema von maximus Caesar · begonnen am 12. Okt 2004 · letzter Beitrag vom 13. Okt 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#1

Tastensimilation an Programm senden

  Alt 12. Okt 2004, 15:26
Hallo!
Hab schon die DP durchsucht, aber nichts gefunden, was mir hilft.
Ich möchte für meine Schwester ein programm schreiben, das folgende Tastenkombinationen an das Spiel Tropico sendet:
Strg+p+e+s+o+s
Strg+c+o+n+t+e+n+d+o
Strg+r+a+p+i+d+o

Dies aber auch nur, wenn man im Spiel z.B. die Taste F9 (F10, F11) drückt.
Kann mir jemand helfen?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Tastensimilation an Programm senden

  Alt 12. Okt 2004, 15:30
Du baust dir einen Tastaturhook, der F9/F10 abfängt und entsprechen mit der Hier im Forum suchenSendkeys-Unit von Hier im Forum suchenKen Henderson die Tasten sendet.
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Tastensimilation an Programm senden

  Alt 12. Okt 2004, 15:35
Kannst du mir auch einen direkten Link geben, wo ich die Unit runterladen kann?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Tastensimilation an Programm senden

  Alt 12. Okt 2004, 15:47
Zitat:
Du baust dir einen Tastaturhook
Hi,

Eine Hook wäre dafür etwas übertrieben.
Hier im Forum suchenRegisterHotkey() tuts auch.


Tasten simulieren:
http://www.swissdelphicenter.ch/de/showcode.php?id=220
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Tastensimilation an Programm senden

  Alt 12. Okt 2004, 16:05
Hab jetzt SendKeys ausprobiert, komme aber mit senden der Strg-Taste nicht zurecht.
kann mir jemand ein Beispiel geben, wie es mit Strg+p+e+s+o+s funktioniert?
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: Tastensimilation an Programm senden

  Alt 12. Okt 2004, 16:11
Die richtige Funktion dazu ist keybd_event bzw. SendInput.
Bei keybd_event muessen die ersten beiden Parameter ausgefuellt sein, sonst akzeptiert DirectInput die Tasten nicht.
Man sendet natuerlich Ctrl-Down, p-Down, p-Up, e-Down, e-Up, s-Down, s-Up, o-Down, o-Up, s-Down, s-Up, Ctrl-Up
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Tastensimilation an Programm senden

  Alt 12. Okt 2004, 16:21
hab jetzt über einen anderen Thread was zu RegisterHotKey gefunden und testwiese folgendes geschrieben:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(self.Handle,0, 0, ord('A')); ;
end;

procedure TForm1.WMHotKey(var Msg : TWMHotKey);
begin

  if Msg.HotKey = ord('A') then begin
    showmessage('A');
  end;
   end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Form1.Handle, ord('A'));
end;


end.
Wenn jetzt das Programm läuft, und ich uaf die A-Taste drücke passiert nichts.
Was muss ich noch hinzufügen?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: Tastensimilation an Programm senden

  Alt 12. Okt 2004, 16:30
Hi,

Sollte so funktionieren:

Delphi-Quellcode:
  private
    id1: Integer;
    procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
  if Msg.HotKey = id1 then
    ShowMessage('Taste A gedrückt !');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  id1 := GlobalAddAtom('Hotkey1');
  RegisterHotKey(Handle, id1, 0, ord('A'));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnRegisterHotKey(Handle, id1);
  GlobalDeleteAtom(id1);
end;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Tastensimilation an Programm senden

  Alt 12. Okt 2004, 16:34
Woll ein bisschen was falschgemacht, beim tippen?

Edit: Jetzt passt's wieder!
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Tastensimilation an Programm senden

  Alt 12. Okt 2004, 16:40
FUNKTIONIERT!

Danke!
  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 12:46 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