Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mausklick u. Tastendruck an Anwendung senden (https://www.delphipraxis.net/44641-mausklick-u-tastendruck-anwendung-senden.html)

Sikk 22. Apr 2005 05:54


Mausklick u. Tastendruck an Anwendung senden
 
Ich hab schon eine gewisse zeit hier im forum gesucht, aber nichts brauchbares gefunden, könnte auch dran liegen dasich nicht genau weiß nach was ich suchen soll (:

also zu meinem problem,
ich möchte einen rechtsklick simulieren, mit "mouse_event(MOUSEEVENTF_RIGHTDOWN,..." hab ichs schon probiert, auf dem desktop, in aktiven fenstern etc. funktioniert's auch, bloß das spiel nimmts leider nicht an...

der tastendruck wird durch "SendKeys('...')" simuliert, im spiel erfolgt allerdings keine reaktion :(

.. das wars auch, falls ihr noch wissen wollt um welches spiel es sich handelt, es geht um mu.exe ein mmorpg (:

bin dankbar für jede art von hilfe, danke schonmal im voraus ...

edit: ich weiß nun wenigstens woran es liegt, weil es ein directx window ist.. eine lösung für mein problem hab ich allerdings noch nicht gefunden ...

Gentleman 22. Apr 2005 13:48

Re: Mausklick u. Tastendruck an Anwendung senden
 
moin moin!

Ich erinnere mich dunkel, dass es mal bei http://www.Swissdelphicenter.de soetwas gab. schau doch mal bei den Programmier Tips und suche nach deinem Problem...

Sollte es mir noch über den Weg laufen werde ich es hier Posten.

Edit:
Bin fündig geworden: http://www.swissdelphicenter.ch/de/showcode.php?id=220
Hoffe das hilft dir weiter.

Sikk 22. Apr 2005 13:58

Re: Mausklick u. Tastendruck an Anwendung senden
 
ja, das könnte mir tatsächlich sweiterhelfen :p gleich ma ausprobieren ...

vielen dank :>

Harry M. 22. Apr 2005 14:01

Re: Mausklick u. Tastendruck an Anwendung senden
 
position abfragen kannste du sie sie mit

Delphi-Quellcode:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Caption := IntToStr(X)+' : '+IntToStr(Y);
end;




procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  showmessage('linken button gedrückt');

  //if Button = mbLeft then
  //if Button = mbRight then

end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 showmessage('linken button losgelassen');
end;
bitte schön....

ah das setzten, ich vergass:


Delphi-Quellcode:
SetCursorPos(LEFT, TOP);

links drücken
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); //drücken
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); // loslassen


//recht drücken
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);//drücken
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);// loslassen

und wegen der tastatur... nimm das hier, das ist nicht so starker api-tobak wie das von den schweiterzn.

http://www.delphipraxis.net/internal...ct.php?t=52266

BenBlume 3. Jun 2005 17:57

Re: Mausklick u. Tastendruck an Anwendung senden
 
Hi, ich hab ewig Foren durchforstet und nicht nur auf dieser Seite. Ich habs auch hingekriegt Tastaturereignisse zu simulieren jedoch bei einer Sache find ich keine Lösung, nämlich wie ich "Taste gedrückt halten" simuliere. Danke für Eure Hilfe im Vorraus :wink:

Zacherl 3. Jun 2005 18:00

Re: Mausklick u. Tastendruck an Anwendung senden
 
vielleicht mit einem Timer die Funktion immer wieder azfrufen.
Timer1.Interval auf 1 setzen.

Florian

nailor 3. Jun 2005 18:02

Re: Mausklick u. Tastendruck an Anwendung senden
 
dann geht er auch immer wieder hoch. gedrückt halten ist, soweit ich weiss, das gleiche, wie immer wieder neu zu drücken, ohne loszulassen. dabei wird im grunde das gleiche wie beim runterdrücken gemacht, nur, dass das "automatic repeat"-flag noch gesetzt wird. aber keine garantie, ich sitze hier an nem rechner ohne delphi/w32apidoc

Harry M. 3. Jun 2005 19:45

Re: Mausklick u. Tastendruck an Anwendung senden
 
Wenn man mein obiges Posting lesen würde, würde man auch wissen wie man eine Taste gedrückt hält.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz