2016-04-21 13 views
1

Ich verwende AutoItX3.Control über win32com.client, um Windows-Sicherheitsdialog zu erkennen und zu schließen ("Vertraust du ..."). Ich benutze WinExist mit Fenstertitel \ text und Es funktioniert gut, wenn das Python-Skript ausgeführt wird (Autoit-Version ist 3.3.8.1).autoit erkennt keine Fenster im kompilierten Python-Skript

Problem ist mit dem kompilierten Python-Skript (mit PyInstaller kompiliert). Das Fenster wird nicht erkannt und ich kann es nicht schließen. Wenn ich die Autoit-Anwendung (SciTE4AutoIt3) ausführe, erkennt es das Fenster.

Irgendwelche Ratschläge?

///// Zugabe von etwas mehr Info: folgende autoit Optionen:

Opt('WinWaitDelay', 500) 
Opt('SendKeyDelay', 8) 
Opt('WinTitleMatchMode', 4) 
Opt('WinSearchChildren', 1) 
Opt('SendKeyDownDelay', 10) 
Opt('WinDetectHiddenText', 1) 

auch, Im die autoit auf einem anderen Prozess als eine Instanz der Klasse Prozess läuft (Process(target=handle_window_func))

Antwort

0

gelöst, indem sowohl die autoit Funktionalität ausgeführt wird und den Prozess der Pop-up-Fenster im selben Skript Triggerung und Überwachung für das Pop-up während der Prozess läuft: popup_p = Popen(*cmd_args, no_wait=True, *cmd_kwargs) while popup_p.is_running(): handle_window_func() time.sleep(1) Beachten Sie, dass Popen wird mit no_wait ausgeführt - gibt den Prozess zurück, ohne darauf zu warten, dass er beendet wird.

0

Haben Sie versucht, mit der klassischen Methode die aktiven X-Optionen festzulegen? Wie:

oAutoItx.AutoItSetOption("WinTitleMatchMode", 4)

statt: oAutoItx.Opt("WinTitleMatchMode", 4)

Auch AutoItx Hilfe sagt: "Mode 4 (" nur "Kept für Rückwärtskompatibilität)". Überprüfen Sie Ihre Optionen und nahm das einfachste, das Sie verwenden können.

+0

Was ist der Unterschied zwischen AutoItSetOption und Opt? –