Könnt ihr euch mal bitte diesen Code ansehen?
Er besteht aus 3 Teilen: Quest, Dialog und Skript. Der Quest- und der Dialog-Teil sind identisch, abgesehen von den Fenstertiteln und den Control-IDs.
Der Dialog-Teil funktioniert problemlos, beim Quest-Teil hängt sich das Programm bei WinWait auf, obwohl das Fenster erscheint.
Aber warum? Ich habe WinTitleMatchMode so eingestellt, dass auch Teile des Titels reichen, das geht doch auch mit WinWait, oder nicht?
Oder übersehe ich irgendwas anderes?
Spoiler anzeigen
If $save_array[0][0] = "Quest" Then
If WinExists("Quest:") Then
$toolbar = _GUICtrlToolbar_FindToolbar("TES Construction Set", "")
_GUICtrlToolbar_ClickIndex($toolbar, 21)
WinWait("Multiple Quest Windows")
ControlClick("Multiple Quest Windows", "", 6)
WinWait("Quest:")
ControlSend("Dialogue", "", 2468, "{DOWN " & $save_array[0][1] -1 & "}")
_ArrayDelete($save_array, 0)
Else
$toolbar = _GUICtrlToolbar_FindToolbar("TES Construction Set", "")
_GUICtrlToolbar_ClickIndex($toolbar, 22)
WinWait("Quest:")
ControlSend("Quest", "", 2468, "{DOWN " & $save_array[0][1] -1 & "}")
_ArrayDelete($save_array, 0)
EndIf
ElseIf $save_array[0][0] = "Skript" Then
;~ ...
_ArrayDelete($save_array, 0)
ElseIf $save_array[0][0] = "Dialog" Then
If WinExists("Dialogue") Then
$toolbar = _GUICtrlToolbar_FindToolbar("TES Construction Set", "")
_GUICtrlToolbar_ClickIndex($toolbar, 22)
WinWait("Multiple Dialogue Windows")
ControlClick("Multiple Dialogue Windows", "", 6)
WinWait("Dialogue")
ControlSend("Dialogue", "", 1448, "{DOWN " & $save_array[0][1] -1 & "}")
_ArrayDelete($save_array, 0)
Else
$toolbar = _GUICtrlToolbar_FindToolbar("TES Construction Set", "")
_GUICtrlToolbar_ClickIndex($toolbar, 22)
WinWait("Dialogue")
ControlSend("Dialogue", "", 1448, "{DOWN " & $save_array[0][1] -1 & "}")
_ArrayDelete($save_array, 0)
EndIf
EndIf