Seite 1 von 1

PyWinAuto - Problem mit Parent und Child

Verfasst: Dienstag 17. Februar 2009, 12:24
von unix
Hallo,
ich arbeite gerade an einem kleinen Script, welches sich automatisch durch ein Programm durchklickt.
Dabei arbeite ich meist mit dem Schema:

Code: Alles auswählen

    app = application.Application()
    app.Start_("programm.exe")
    dialog = app.window_(title = "Apfelkuchen")
Dabei klicke ich an einer Stelle im Programm, in der sich ein Dialog öffnet, der ebenfalls Apfelkuchen als Titel beinhaltet und einen OK-Button.
Diesen würde ich nun gerne klicken, allerdings bekomme ich dann die Meldung, dass er nicht weiß wo er klicken soll, weil er zwei Fenster mit besagtem Namen findet.
Nun habe ich aus der Doku erfahren, dass es wohl mit

Code: Alles auswählen

    temp = findwindows.find_windows(title = "Apfelkuchen")
möglich ist nach Fenstern zu suchen.
Ein einfaches print temp gibt mir dann auch folgendes aus:
234913, 215672
Was ich nun nicht herausgefunden habe und gerne wissen würde, ist, wie ich nun den OK-Button beim zweiten Fenster (welches sich öffnet wenn man einen Button beim Hauptprogramm klickt) anklicken kann.

Kann mir dazu jemand helfen? :)

Verfasst: Dienstag 17. Februar 2009, 12:42
von ms4py
Mit dem find bekommst ja wohl die Referenzen auf die 2 Fenster.
Die eine Referenz hast ja schon ( ``dialog``).
Dann musst einfach die andere nehmen ;-)

Wenn du keine Referenzen bekommst dann schau dir mit nem Debugger deine ``dialog`` Variable und den Return von der find Funktion an, und schau wie du die zusammenbringen kannst.

Ich hoffe mal es ist klar was ich meine^^

Verfasst: Dienstag 17. Februar 2009, 13:19
von unix
Was du meinst verstehe ich, allerdings weiß ich nicht genau wie ich über die Referenz arbeite.
D.h. wie genau sieht der Code aus, damit ich das Fenster mit der Referenz 215672 bzw. deren OK-Button anspreche?

Verfasst: Dienstag 17. Februar 2009, 13:22
von ms4py
Hab leider nur den rein in python gedachten Lösungsvorschlag, weil ich von dem entsprechenden Modul keine Ahnung habe ;)
Dazu solltest du dir einfach die Referenz davon anschauen.