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 2 von 2     12   
Benutzerbild von maximus Caesar
maximus Caesar

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

Re: Tastensimilation an Programm senden

  Alt 12. Okt 2004, 16:50
Zitat von Robert Marquardt:
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
Bei mir wird Ctrl nicht erkannt!(vone Ctrl-Down)
kann mir jemand ein Code Beispiel geben?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: Tastensimilation an Programm senden

  Alt 13. Okt 2004, 07:19
Hast du SendInput auch probiert?
Thomas
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#13

Re: Tastensimilation an Programm senden

  Alt 13. Okt 2004, 08:02
SendInput ist ein Aufsatz auf keybd_event. Es sollte sich also gleich verhalten.
Poste doch mal die bisherigen Sourcen.
  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
 
#14

Re: Tastensimilation an Programm senden

  Alt 13. Okt 2004, 12:35
Hier der aktuelle Source-Code:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
  ID1:Integer;
  PROCEDURE WMHOTKEY(VAR MSG: TWMHOTKEY); MESSAGE WM_HOTKEY;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

PROCEDURE TFORM1.FORMCREATE(SENDER: TOBJECT);
BEGIN
 ID1 := GLOBALADDATOM('HOTKEY1');
 REGISTERHOTKEY(HANDLE, ID1, 0, ORD('B'));
END;

PROCEDURE TFORM1.WMHOTKEY(VAR MSG: TWMHOTKEY);
BEGIN
 IF MSG.HOTKEY = ID1 THEN
 begin
 Keybd_Event(VK_CONTROL,0,0,0);
 sendkeys('pesos');

 Keybd_Event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
 end;
END;

PROCEDURE TFORM1.FORMDESTROY(SENDER: TOBJECT);
BEGIN
 UNREGISTERHOTKEY(HANDLE, ID1);
 GLOBALDELETEATOM(ID1);
END;


end.
Strg wird jetzt zwar simuliert, aber nicht, das die Taste während der Eingabe von "pesos" weiterhin gedrückt wird!
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#15

Re: Tastensimilation an Programm senden

  Alt 13. Okt 2004, 14:13
Muss man denn alles zweimal schreiben?
Die beiden ersten Parameter von keybd_event muessen ausgefuellt werden.
Zusaetzlich wuerde ich alle Keycodes mit keybd_event verschicken.
  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
 
#16

Re: Tastensimilation an Programm senden

  Alt 13. Okt 2004, 18:17
Kannst du mir dann bitte ein Beispiel mit Code geben?
Währe sehr hilfreich!
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#17

Re: Tastensimilation an Programm senden

  Alt 13. Okt 2004, 18:40
Da muss ich noch ein bischen rumexperimentieren. "MapVirtualKey(VK_CONTROL, 0) shl 16" ist glaube ich die korrekte Berechnung fuer den zweiten Parameter.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 10:31 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