Hallo liebe Community,
als begeisterter Newbie von Autoit bin ich derzeit fleißig am programmieren, bin jetzt aber wiederholt auf ein Problem gestoßen und wäre euch dankbar wenn ihr mir weiterhelfen könntet.
Folgender Sachverhalt:
Ich öffne mit Autoit ein Fenster, welches lt. AU3-Info-Tool folgende Window-Parameter besitzt:
Title:
Class: class_470
Position: 1088, 292
Size: 890, 470
Style: 0x14CF0000
ExStyle: 0x00000100
Handle: 0x00020598
Da das Fenster keinen Titel besitzt, sich über class, style... (erweiterte Fensterfunktionen) nicht ansteuern lässt und die Position des Fenster beim Öffnen dynamisch ist bleibt mir nur die Ansteuerung über "Size".
[autoit]
WinActivate("[W: 890; H: 470]")
WinWaitActive("[W: 890; H: 470]", "", 1)
$Handle_Fenster1 = WinGetHandle("[W: 890; H: 470]")
Im nächsten Schritt öffne ich ein weiteres dieser Fenster mit den gleichen AU3-Tool-Infos (kein Titel, gleicher classname, gleiche Size) allerdings einem anderen Handle.
Bisher habe ich dieses Fenster ebenfalls über Size angesteuert, hin und wieder kommt es allerdings vor, dass dadurch fälschlicherweise das erste (zuvor geöffnete) Fenster angesteuert wird.
Da im nächsten Schritt noch ein weiteres dieser Fenster geöffnet wird, kann es durch die alleinige Ansteuerung über "Size" zu Problemen führen.
Gibt es programmiertechnisch die Möglichkeit, dass ich Autoit beim zweiten Fenster die Anweisung gebe:
Suche das Fenster mit der "Size" [W: 890; H: 470] und schließe gleichzeitig das Fenster mit dem Handle von Fenster1 aus (im Sinne von: not $Handle_Fenster1), so dass nur noch das zweite Fenster übrig bleiben kann?
Also, dass Autoit zuerst alle Fenster mit der "Size" [W: 890; H: 470] sucht und dann im Ausschlussverfahren über das Handle das richtige Fenster ansteuert (nämlich das einzige, welches noch nicht zuvor als Handle definiert wurde)
Kann man das mit booleschen Operatoren nach folgender Logik definieren (funktioniert so leider nicht):
[autoit]
WinActivate("[W: 890; H: 470]" and not $Handle_Fenster1)
bzw. bei mehrere Handles zum ausschließen:
[autoit]
WinActivate("[W: 890; H: 470]" and not ($Handle_Fenster1 and $Handle_FensterX))
Oder kennt ihr vielleicht eine andere möglichst sichere Lösung?
Vielen Dank vorab
Grüße
tobius