Hallo liebe Community,
ich brauche mal wieder Hilfe von ein paar Profis.
Und zwar habe ich in einer Automatisierten Installationsroutine ein Fenster das sich nicht schließen lässt und dadurch das Script unterbrochen wird.
Und zwar hängt es immer an einem Fenster wenn von dem ersten Installationsteil das "Setup"-Fenster per "Finish" Button beendet werden soll.
Das Script lief auch zuvor und da wurde einfach per Winwaitactive und GlobalSend("!F") das Fenster geschlossen. Nun hat vermutlich der SW Lieferant irgendwas geändert und nun läuft mein Script nicht mehr durch.
Nun wollte ich anstatt dem Send Befehl, ControlSend oder ControlClick verwenden um sicher zu sein dass auch das richtige Fenster bearbeitet wird.
Das Windows Info Tool gibt mir folgendes aus:
>>>> Window <<<<
Title: Atlantic Zeiser Printers 6.0r8(x64) Setup
Class: #32770
Position: 708, 325
Size: 503, 389
Style: 0x94CA084C
ExStyle: 0x00010100
Handle: 0x00000000002F0DC2
>>>> Control <<<<
Class: Button
Instance: 2
ClassnameNN: Button2
Name:
Advanced (Class): [CLASS:Button; INSTANCE:2]
ID: 1
Text: &Finish
Position: 324, 327
Size: 75, 23
ControlClick Coords: 34, 10
Style: 0x50010000
ExStyle: 0x00000004
Handle: 0x000000000030080A
>>>> Mouse <<<<
Position: 361, 362
Cursor ID: 0
Color: 0x000000
>>>> StatusBar <<<<
>>>> ToolsBar <<<<
>>>> Visible Text <<<<
< &Back
&Finish
Cancel
Completing the Atlantic Zeiser Printers 6.0r8(x64) Setup Wizard
Atlantic Zeiser Printers 6.0r8(x64) has been installed on your computer.
Click Finish to close this wizard.
>>>> Hidden Text <<<<
Nullsoft Install System v2.46
Nullsoft Install System v2.46
Installation Complete
Setup was completed successfully.
Der Teil in meinem Script sollte dann wie folgt ablaufen:
Opt("WinTitleMatchMode", 4)
Opt("WinTextMatchMode", 2)
Global $SetupFinishActivate = WinActivate("[CLASS:#32770]", "")
Global $SetupFinishActive = WinActive("[CLASS:#32770]", "")
DataLog("Setup Finish Active:" & $SetupFinishActive)
If $SetupFinishActive = 0 Then
$SetupFinishActivate("[CLASS:#32770]", "")
DataLog("Activate Handle:" & $SetupFinishActivate)
EndIf
WinWaitActive("[CLASS:#32770]", "", 1500)
ControlClick("[CLASS:#32770]", "", "[CLASS:Button; INSTANCE:2]", "primary", 1)
Alles anzeigen
Oben mit ControlClick. Hab auch schon die Koordinaten mit eingegeben. Und anstatt ControlClick hab ich Control Send verwendet und versucht entweder durch senden "!F" oder "{Enter}" den Button zu betätigen. Aber nichts funktioniert.
Ach genau. anstatt von "[Class]" als Titel hab ich auch den Text verwendet mal mit und mal ohne den WinTitleMatchmode.
Und ja ich hab schon jede Menge Forenthreads durchgelesen aber keine Lösung gefunden
Gibt es noch eine andere Möglichkeit AutoIt zu zwingen auf ein bestimmtes Fenster zu reagieren? Und hat mich auch nicht weitergebracht
Ich hoffe ihr habt mir eine Lösung
LG
Bad
Erstellt wurde das Script mal mit XP, dann unter WIN 7 32bit gepflegt und sollte nun auf WIN 7 64 bit laufen. Vielleicht liegt hier ja der Hund begraben...
SciTe version ist 3.4.4(falls es was bringt)