Seite 1 von 1

windows steuern

Verfasst: Samstag 3. Mai 2008, 09:37
von jo_hb
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

Re: windows steuern

Verfasst: Samstag 3. Mai 2008, 11:32
von gerold
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
:-)

Verfasst: Samstag 3. Mai 2008, 14:11
von jo_hb
ja, genau, danke! Also das hab ich wohl übersehen... gibt halt viele treffer wenn man nach Maus sucht... :oops:

Verfasst: Samstag 3. Mai 2008, 21:00
von jo_hb
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...

Verfasst: Sonntag 4. Mai 2008, 11:32
von HWK

Verfasst: Montag 5. Mai 2008, 07:23
von jo_hb
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! :)