windows steuern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jo_hb
User
Beiträge: 72
Registriert: Donnerstag 26. April 2007, 09:21

Samstag 3. Mai 2008, 09:37

Hallo Forum,

nach längerer Abwesenheit habe ich nun mal wieder eine Python-Frage, habe dazu bisher im Forum nichts gefunden: Und zwar möchte ich per Python eine andere Anwendung steuern, d.h. buttons anklicken, Werte in Textboxen eintragen... Ich dachte am einfachsten wäre es wahrscheinlich mit meinem Python-script den Mauszeiger irgendwo hinzustellen und zu klicken, oder? Aber wie?
(Meine erste Idee dazu war sicher ein bisschen umständlich - es gibt ja verschiedene Freeware-programme, die genau das machen, also die Maus etc. anhand eines kleinen Scripts fernsteuern, zB Auto Hotkey... und dann dachte ich könnte mein Python-script ein AutoHotkey-script als textdatei erstellen und dann ausführen lassen... aber das kommt mir nun selbst dermassen um die Ecke gedacht vor dass ich lieber nochmal frage.. :)

Gruss,
Joerg
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Samstag 3. Mai 2008, 11:32

jo_hb hat geschrieben:Und zwar möchte ich per Python eine andere Anwendung steuern, d.h. buttons anklicken, Werte in Textboxen eintragen...
Hallo Joerg!

http://www.python-forum.de/post-87392.html#87392

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
jo_hb
User
Beiträge: 72
Registriert: Donnerstag 26. April 2007, 09:21

Samstag 3. Mai 2008, 14:11

ja, genau, danke! Also das hab ich wohl übersehen... gibt halt viele treffer wenn man nach Maus sucht... :oops:
jo_hb
User
Beiträge: 72
Registriert: Donnerstag 26. April 2007, 09:21

Samstag 3. Mai 2008, 21:00

Hm, hab jetzt ein bisschen mit PyWinAuto rumprobiert, aber es scheint doch noch nicht ganz das richtige zu sein, weil es nämlich nur Windows-Anwendungen steuern kann - also zB mit Notepad klappt das schon, wenn ich da ein suchen-Fenster aufmache kann ich mit PyWinAuto auf die Buttons zugreifen... Aber was ich eigentlich steuern will ist eine Java-Applikation, da geht gar nichts. :(
(Also, genauer gesagt, wo ich mit PyWinAuto beim Notepad eine schöne Liste mit allen Buttons etc. bekomme, kriege ich bei dem Java-Fenster nur ein einziges Control gelistet, obwohl die Oberfläche auch voller Buttons ist...)

Daher die Anschlussfrage: Gibt es nicht ein toolkit oder so, mit dem ich einfach sowas machen kann wie

Code: Alles auswählen

window(handle).click(120,35)
...wobei window(handle) eben das Fenster wäre in dem das Java-Ding läuft und (120, 35) die Koordinaten innerhalb des Fensters, die ich anklicken will?

Hoffe es gibt sowas...
jo_hb
User
Beiträge: 72
Registriert: Donnerstag 26. April 2007, 09:21

Montag 5. Mai 2008, 07:23

Hab doch noch ne Lösung gefunden:

Code: Alles auswählen

>>> from pywinauto.controls.HwndWrapper import _perform_click_input
>>> _perform_click_input(coords=(10, 10))
...macht genau das was es soll, x und y sind absolute Bildschirmkoordinaten.

Das Mouse_event aus der win32api hab ich auch probiert, aber das hat im ersten Anlauf nicht geklappt... Danke trotzdem! :)
Antworten