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
windows steuern
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Joerg!jo_hb hat geschrieben:Und zwar möchte ich per Python eine andere Anwendung steuern, d.h. buttons anklicken, Werte in Textboxen eintragen...
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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
...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...
(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)
Hoffe es gibt sowas...
Vielleicht reicht das schon:
http://aspn.activestate.com/ASPN/docs/A ... _meth.html
http://msdn.microsoft.com/en-us/library/aa932376.aspx
MfG
HWK
http://aspn.activestate.com/ASPN/docs/A ... _meth.html
http://msdn.microsoft.com/en-us/library/aa932376.aspx
MfG
HWK
Hab doch noch ne Lösung gefunden:
...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!
Code: Alles auswählen
>>> from pywinauto.controls.HwndWrapper import _perform_click_input
>>> _perform_click_input(coords=(10, 10))
Das Mouse_event aus der win32api hab ich auch probiert, aber das hat im ersten Anlauf nicht geklappt... Danke trotzdem!