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 Maus außerhalb des Delphi-Programms steuern (https://www.delphipraxis.net/11577-maus-ausserhalb-des-delphi-programms-steuern.html)

Cuchulainn 10. Nov 2003 08:41


Maus außerhalb des Delphi-Programms steuern
 
Kann mir jemand folgendes erklären oder mir einen Quelltext geben, der das Folgende macht, weil ich keine Ahnung von der Windows API habe, aber dieses Programm dringend brauche:
Und zwar geht es darum, dass ich aus meinem Delphi-Programm heraus die Maus steuern muss. Zum Beispiel soll mein Programm die Maus auf das Wordsymbol auf dem Desktop bewegen, einen Doppelklick ausführen und Word damit öffnen und dann in Word auf den Menüpunkt "Datei" und "Beenden" klicken. Selbstverständlich sind die Anwendungen, für die ich dieses Programm benötige, wesentlich komplizierter, aber wenn ich so weit wäre, wäre ich schon ein gutes Stück weiter.

Christian Seehase 10. Nov 2003 19:25

Re: Maus außerhalb des Delphi-Programms steuern
 
Moin Cuchulainn,

was genau willst Du denn erreichen?
Gerade Office Komponenten lässt sich auf anderem Wege deutlich besser steuern (siehe Registerkarte Servers in der IDE).
Und starten ginge über ShellExecute auch deutlich einfacher.

Bei Verwendung des Cursors stehst Du immer vor dem Problem, dass Du erst einmal herausbekommen musst, wo Du klicken musst, was gerade bei sich verändernden Menüs recht schwierig werden dürfte.

himitsu 10. Nov 2003 19:38

Re: Maus außerhalb des Delphi-Programms steuern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zum Mausbewegen hab ich was, aber wie Mausklicks simuliert werden weis ich nicht mehr.
Hab's lange nicht mehr benötigt und auch nichts dazu gefunden.

Matze 10. Nov 2003 19:46

Re: Maus außerhalb des Delphi-Programms steuern
 
@himitsu: jetzt hab ich ja einen tollen Cursor. :mrgreen:

Gleich mal wieder in der Systemsteuerung umstellen. ;)

Edit: Ja toll, jetzt sind die 3 Quadrate mein Standard-Zeiger, ich will den normalen Cursor. :cry:
Edit2: http://www.delphipraxis.net/internal...?p=93707#93707 :mrgreen:

APP 10. Nov 2003 19:47

Re: Maus außerhalb des Delphi-Programms steuern
 
Hallo,
Zitat:

Zitat von himitsu
...aber wie Mausklicks simuliert werden weis ich nicht mehr...

Delphi-Quellcode:
   mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); // linker Mausklick down
   mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);  // linker Mausklick up
Zitat:

Zitat von OH
The mouse_event function synthesizes mouse motion and button clicks.

VOID mouse_event(
DWORD dwFlags, // flags specifying various motion/click variants
DWORD dx, // horizontal mouse position or position change
DWORD dy, // vertical mouse position or position change
DWORD dwData, // amount of wheel movement
DWORD dwExtraInfo // 32 bits of application-defined information
);


hoffentlich spekulieren wir nicht nur ins Blaue hinein :mrgreen:

Cuchulainn 11. Nov 2003 06:10

Re: Maus außerhalb des Delphi-Programms steuern
 
Dass ich Programme wie Excel, Word und Outlook fernsteuern kann, habe ich schon rausgefunden bzw. rausfinden müssen ;) Es geht darum, die Tests für ein Programm, das Kollegen geschrieben haben, zu automatisieren. Aber ich habe eine Möglichkeit gefunden:

Delphi-Quellcode:
procedure TForm1.ProcMausposBestimmen;
var MausPos : TPoint;
begin
  MausPos := Mouse.CursorPos;
  label1.Caption:=IntToStr(MausPos.x); //x-Koordinate des Zeigers
  label2.Caption:=IntToStr(MausPos.y); //y-Koordinate des Zeigers
end;
Mit der Funktion lasse ich mir mit einem Timer die Mauskoordinaten anzeigen. Dann arbeite ich mit folgendem:
Delphi-Quellcode:
     SetCursorPos(265, 47);
     mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
     SetCursorPos(288, 143);
     mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
Falls es mal jemanden interessieren sollte :) Das funktioniert so ganz gut.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 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