Hallo,
ich habe da ein Problem beim Fenstererkennen, bei schnelleren Rechnern (Core2Dou E8400).
Wenn ich folgendes Script auf einem langsamen Rechner (AthlonXP 2000) laufen lasse, so funktioniert das einwandfrei.
Beispielscript:
Befehle....
; Das Fenster durch einen Klick auf "Installieren" schließen.
ControlClick($Fenster_Titel, "&Installieren", "Button2")
Sleep(500)
; Eintragungen usw. in folgenden Fenster (das während der Installation angezeigt wird).
; Warten bis das Fenster des Installationsprogramms existiert.
WinWait($FensterTitel, $FensterText)
Weitere Befehle...
Ende des Beispielskriptes:
Aber wenn ich dieses Script dann auf dem schnelleren Rechner laufen lasse, so läuft es nicht mehr.
Dann wird das erste Fenster einwandfrei abgearbeitet und auch durch den Klick auf den &Installieren-Button geschlossen, aber das folgend Fenster wird nicht mehr erkannt obwohl es richtig angezeigt wird.
Dann wartet der Rechner nämlich ewig auf das nächste Fenster.
Auch das Sleep zwischen den beiden Fenstern verlängern oder ganz weglassen, funktioniert nicht.
Das einzige, was da funktioniert ist wenn man den WinWait-Befehl komplett weglässt und damit auf die Fenstererkennung ganz verzichtet.
Anscheinend gibt es da ein Problem, wenn ein Fenster schon existiert bevor die WinWait-Abfrage kommt.
Das selbe Problem habe ich auch beim ProzessWait-Befehl.
Wenn der gesuchte Prozess schon existiert bevor der ProzessWait-Befehl abgearbeitet werden soll, so warte der schnellere Rechner vergebens auf den Prozess.
Anscheinend muss man bei schnelleren Rechner da einen extra Befehl o.ä. einfügen, damit der Rechner etwas gebremst wird.
So ist ein derarter Rechner anscheinend einfach zu schnell für AutoIt.
Oder ist das ein spezielles Problem beim Einsatz von DualCore-CPU`s ?
(Da scheint nämlich das Installation-Programm schneller zu laufen als das AutoIt-Script).
Für eine Hilfe bei diesem Problem, währe ich sehr dankbar.
(vielleicht kennt ja schon einer dieses Problem und auch die Lösung dazu).
Gruß:
BigRox