Möglichkeiten mit Schaltflächen
-
Hallo.
Ich bin neu hier und wollte mich demnächst sehr wahrscheinlich mit C++ auseinandersetzen. Bisher kann ich grundlegend nur C und ein wenig Delphi.
Ich weiß nicht wo ich diese Frage stellen soll, also stelle ich sie mal in diesem Bereich.
Da ich demnächst vorhabe ein Programm zu realisieren wollte ich mal fragen ob es möglich ist innerhalb eines Programms von dem ich nicht den Quellcode habe, sagen wir z.B. Firefox, auf bestimmte Schaltflächen zu klicken, meinetwegen Lesezeichen ..und dann irgendein Lesezeichen. Oder sogar gewisse Abläufe zu programmieren, wo dann bestimmte Funkltionen des Programmes abgerufen werden. (also z.B. bei Firefox: Extras -> Einstellungen -> Erweitert -> Allgemein -> (irgendein Häkchen setzen) -> OK) Diese Information brauch ich erstmal nur grundlegend ob es überhaupt Sinn macht sich damit dann auseinander zu setzen.Danke schon mal für die Antwort!
-
klar, das is möglich. code injection und hooking sind die stichworte.
-
Wenn die Anwendung soetwas unterstuetzt ist es meistens leicht zu machen.
zB bietet Windows COM an um Anwendungen zu steuern bzw. dass sich Anwendungen steuern lassen. Unter Mac OS hat man Apple Script das im Prinzip etwas aehnliches macht.
Das Problem: die Anwendung muss auf diese Steuerungsanfragen reagieren. Wenn sie es nicht tut, dann Pech gehabt.
Was manchmal reichen kann sind Tastenkombinationen zu senden um bestimme Ereignisse auszuloesen. Wobei man unter Vista da auf die Rechte der einzelnen Anwendungen achten muss.
Also zusammengefasst: wenn die Anwendung nicht auf sowas ausgelegt ist, dann sieht es finster aus.
-
Fürn Firefox gibts die möglichkeit plugins zu schreiben, aber ob die API dazu genau das kann was du willst, weiß ich nicht.
-
danke für die schnellen Antworten. Nun frage ich mich, ob es eine Möglichkeit gibt herauszufinden, ob das Programm das kann oder nicht? und wenn es das nicht können sollte, gibt es also keine Möglichkeit das Programm zu steuern oder vllt doch irgendeinen Trick?
-
McLovin schrieb:
danke für die schnellen Antworten. Nun frage ich mich, ob es eine Möglichkeit gibt herauszufinden, ob das Programm das kann oder nicht? und wenn es das nicht können sollte, gibt es also keine Möglichkeit das Programm zu steuern oder vllt doch irgendeinen Trick?
In der Dokumentation der Anwendung. Ansonsten sieht es eben duester aus.
Du kannst natuerlich User Eingaben an die Anwendung schicken - zB ein Strg+S wenn du Speichern willst. Wenn aber zur gleichen Zeit ein User mit der Anwendung arbeitet sieht es finster aus.
Was aber klappt um Tasks zu automatisieren wenn Niemand an dem Rechner sitzt ist sich einen Roboter schreiben der gewisse Arbeitsablaeufe einfach ausfuehrt. Man kann ja Programmtechnisch Usereingaben vortaeuschen, die Maus Bewegen, Tastendruecke simulieren.
Die Frage ist aber: wozu brauchst du sowas?
PS:
bestimmte Anwendungen bieten fuer Automatisierungen auch spezielle Funktionen. zB bietet Firefox Plugins an die dir uU reichen koennten. Andere Anwendungen unterstuetzen Scriptsprachen zur Automatisierung oder bieten ein Commandline Interface um sich steuern zu lassen.
-
Besten Dank. Das hat mir sehr geholfen. Mit Infos kann ich mich nun erst einmal beginnen C++ grundlegend zu erlernen.
-
Besten Dank. Das hat mir sehr geholfen. Mit Infos kann ich mich nun erst einmal beginnen C++ grundlegend zu erlernen.
-
ja jetzt weiß ich halt, dass das Programm was ich mir vorstelle, grundsätzlich realisierbar ist und ich mich nun erstmal für die nächsten Monate mit der Theorie beschäftigen kann/muss.
-
Aber das hättest du mit Plain C und Delphi genauso gut hinbekommen.
-
bgdnoy schrieb:
Aber das hättest du mit Plain C und Delphi genauso gut hinbekommen.
mit Delphi in womöglich viel kürzerer Zeit
oder auch python ... oder visual basic ... x)
also kurz: jede programmiersprache, die eine anbindung an die Win32 API hat
-
okay kann sein. ich wollte mich allerdings schon längere Zeit mit einer objektorientierten Programmiersprache anfreunden (neben delphi), also werde ich diese Gelegenheit gleich nutzen um auf C umzusteigen (ps delphi hatte ich nur in der Schulzeit, und auch nich sonderlich tiefgreifend..allgemein gefällt mir C++ besser)
@shade: ich habe schon ein paar Kapitell deines Tut gelesen und es gefällt mir bisher sehr gut!
-
McLovin schrieb:
gewisse Abläufe zu programmieren, wo dann bestimmte Funkltionen des Programmes abgerufen werden. (also z.B. bei Firefox: Extras -> Einstellungen -> Erweitert -> Allgemein -> (irgendein Häkchen setzen) -> OK)
hallo, fuer diese Art Software-Steuerung empfiehlt sich, Software zu benutzen, die mit Textdateien steuerbar ist (Steuerung mittels rc-Dateien oder dot-files wie z.B. bei ~/.emacs) und deren Funktionen man per Kommandozeile aktivieren kann (z.B. wget statt firefox).
Steuerung geschieht dann per Shell-Skript oder mit Python oder, wenn es einen Mehrwert bringt, auch mit C/C++.
Erfahrungsgemaess kommt man bei dieser Vorgehensweise schneller ans Ziel, wenn man eines
der betriebssysteme mit dem 'x' am Ende benutzt (sorry, ist halt nun mal so...)
-
jup danke für den hinweis. allerdings kann ich mir das nicht aussuchen, ob das Programm von außen steuerbar mit textfiles ist.