Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fernsteuerung einer beliebigen Applikation (https://www.delphipraxis.net/76816-fernsteuerung-einer-beliebigen-applikation.html)

rolfi 10. Sep 2006 14:17


Fernsteuerung einer beliebigen Applikation
 
Hallo an alle Delphianer,

ich hätte mal folgende Frage:

Kann man, und wenn ja, wie, eine andere Applikation ( also ein Standard-Programm, vermutlich in Visual Basic ? ) fernsteuern, d.h. Buttons fernbedienen und Eingaben in Textboxen machen ? Ich wollte die Anwendung nicht über VNC fernbedienen, sondern in einer Art Scripting automatisieren. Ich hätte unter Delphi keine Idee, man hat mir aber bereits Windows Scripting Host als Lösungsmöglichkeit genannt. Wisst ihr da was ?
Die Anwendung läuft unter XP unter dem gleichen Benutzer.
Danke vielmals !

Grüße, Rolf

Christian Seehase 10. Sep 2006 14:35

Re: Fernsteuerung einer beliebigen Applikation
 
Moin Rolf,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Prinzipiell sollte das funktionieren, das hängt aber auch davon ab, welche Controls verwendet werden.
Manche bekommt man direkt zu fassen, und kann mit den zugehörigen Messages arbeiten (z.B. Hier im Forum suchenBM_CLICK um einen Button anzuklicken, oder WM_Hier im Forum suchenGETTEXT um einen Text auszulesen), manchmal muss man aber auch den Mauscursor positionieren und eine Klick simulieren.
Was man wie ansprechen kann dürfte übrigens kaum mit der Sprache zusammenhängen, in der man das Programm schreiben will. (eher schon die Sprache in der das Programm geschrieben wurde, dass man steuern will, z.B. ein JAVA-Programm sieht da ganz anders aus, als ein "normales" Windowsprogramm)

Als Suchbegriffe könnten hier hilfreich sein (das Thema hatten wir schon öfter):
EnumWindows, EnumChildWindows, FindWindow, SendMessage (obwohl dieses auch in anderen Zusammenhängen öfter benötigt wird), BM_CLICK, WM_GETTEXT, WM_SETTEXT, WM_KEYDOWN, WM_KEYUP.

Dies nur mal als Auswahl (einzeln oder in Kombination für die Suche zu benuzten).
Damit solltest Du schon einiges finden können, was Dir weiterhilft.

[EDIT]
Es gibt von MS ein, sehr simples, Tool, dass extra für Steuerung geschrieben wurde: ScriptIt.
Dies könnte bei MS noch zum Download zur Verfügung stehen, allerdings ist es nur für relativ einfache Aufgaben geeignet (zumindest die letzte Version, die ich vor sechs Jahren in der Hand hatte ;-))
[/EDIT]

rolfi 10. Sep 2006 17:58

Re: Fernsteuerung einer beliebigen Applikation
 
das ging ja extrem fix ...
Danke für die Antwort, das werde ich sobald als möglich testen !

Viele Grüße an alle Delphianer !

Rolf

m.wollert 10. Sep 2006 18:57

Re: Fernsteuerung einer beliebigen Applikation
 
Hallo Rolf,

es gibt ein Tool - AutoIt in der Version 3 - mit dem sich einfach Windows-Skripts sehr simpel und genial Programmieren lassen. Es gibt hierzu auch einen Recorder, der Deine Aktionen aufzeichnet, welche später wieder abgespielt werden können. Kompilieren lassen sich die Skripte auch - so können z.B. Installationen automatisiert durchgeführt werden.

Schau Dich mal ein wenig um
http://www.autoitscript.com/autoit3/

Grüße!
Michael

rolfi 14. Sep 2006 18:17

Re: Fernsteuerung einer beliebigen Applikation
 
Danke !!!

Werde ich gleich mal downloaden ( is ja Freeware ) und testen

Grüsse an alle !

skydiablo 24. Sep 2013 20:50

AW: Re: Fernsteuerung einer beliebigen Applikation
 
Zitat:

Zitat von Christian Seehase (Beitrag 521992)
z.B. ein JAVA-Programm sieht da ganz anders aus, als ein "normales" Windowsprogramm)

hiho,
sry dass ich das alte ding hier wieder ausgrabe... aber genau diese fragestellung wird sich wohl demnächst bei mir ergeben. ich müsste mit delphi eine java application steuern, was ist dabei zu beachten und in wie weit unterscheidet sich das von "normalen" windows GUI programmen?

greez & thx,
sky...

Medium 25. Sep 2013 02:28

AW: Fernsteuerung einer beliebigen Applikation
 
Das größte Problem mit Java ist, dass man in der Regel nur ein einziges WinControl finden kann - das Fenster an sich. Alles darin ist, aus Sicht von Windows, nur eine einfache Grafik, und kein interaktives Element. (Bei SWT bin ich nicht 100%ig sicher, ggf. wird da sogar ein Handle benutzt.) Heisst: Um Java-Programme unter Windows fernzusteuern braucht man entweder eine API des Programms, oder muss mit simulierten Mausklicks/Tastatuevents arbeiten. Je nach dem wie komplex/variabel das sein soll, beschränkt sich das auf das Nutzen vordefinierter Koordinaten für Clicks, kann aber auch leicht hin bis zu einer automatisierten visuellen Analyse incl. OCR reichen. Eine API wäre hier wohl eine deftige Erleichterung. Zumindest wenn es um einen einigermaßen definierten Kreis von Programmen geht, die eine bieten.

Bernhard Geyer 25. Sep 2013 07:49

AW: Fernsteuerung einer beliebigen Applikation
 
Fernsteuerung über Senden von Windows-Messages ist immer ein Notlösung wenn es nicht besseres gibt.

Sinnvollerweise verwendet man definierte API oder Aufrufparameter.

Christian Seehase 25. Sep 2013 09:34

AW: Fernsteuerung einer beliebigen Applikation
 
Moin Bernhard,

Zitat:

Zitat von Bernhard Geyer (Beitrag 1229833)
Fernsteuerung über Senden von Windows-Messages ist immer ein Notlösung wenn es nicht besseres gibt.

Sinnvollerweise verwendet man definierte API oder Aufrufparameter.

Wenn eine Anwendung die Möglichkeit zur Steuerung zur Verfügung stellt ist das natürlich das Optimum.
Die Verwendung von Windows-Messages halt ich allerdings nicht für eine Not- sondern für eine Zwischenlösung.
Notlösung ist in meinen Augen die Simulation von Maus- bzw. Tastatureingaben (incl. Positionieren des Cursors), was, erfahrungsgemäss, oft auch nur bedingt stabil funkioniert. :wink:


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