Hey Christian,
vielen Dank für deine schnelle Antwort!
Nach einigen test konnte ich feststellen das es, wie du mitunter vermutet hast, am DarkMode liegt.
Folgende Eckpunkte:
> DarkMode + Win Sicherheit aus = Funktioniert nicht
> Win XP Skin => Funktioniert
> GUIRelax => Selbes Problem
Aus offensichtlichen gründen, habe ich mich mal durch den ISN Sourcecode gewühlt...
Debug Änderungen, um das Problem etwas einzugrenzen:
"ISN_Studio_Addons.au3" => _Load_Project
Code: Alles auswählen
....
_Write_ISN_Debug_Console("_Load_Project > Checkpoint 4", 1)
_ISN_Set_Variable_in_Plugin($ISN_Helper_Threads[$ISN_Helper_Scripttree][$ISN_Helper_Handle], "$ISN_AutoIt_Studio_ISN_file_Path", $Pfad_zur_Project_ISN) ;Update $ISN_AutoIt_Studio_ISN_file_Path in scripttree thread
_Write_ISN_Debug_Console("_Load_Project > Checkpoint 4.2", 1)
_ISN_Set_Variable_in_Plugin($ISN_Helper_Threads[$ISN_Helper_Scripttree][$ISN_Helper_Handle], "$ISN_AutoIt_Studio_opened_project_Path", $Offenes_Projekt) ;Update $ISN_AutoIt_Studio_opened_project_Path in scripttree thread
_Write_ISN_Debug_Console("_Load_Project > Checkpoint 4.3", 1)
_ISN_Set_Variable_in_Plugin($ISN_Helper_Threads[$ISN_Helper_Scripttree][$ISN_Helper_Handle], "$ISN_AutoIt_Studio_opened_project_Name", $Offenes_Projekt_name) ;Update $ISN_AutoIt_Studio_opened_project_Name in scripttree thread
_Write_ISN_Debug_Console("_Load_Project > Checkpoint 4.4", 1)
_ISN_Set_Variable_in_Plugin($ISN_Helper_Threads[$ISN_Helper_Scripttree][$ISN_Helper_Handle], "$Studiomodus", $Studiomodus) ;Update $Studiomodus in scripttree thread
_Write_ISN_Debug_Console("_Load_Project > Checkpoint 5", 1)
...
"ISN_Addon_Pluginsystem" => _ISN_Set_Variable_in_Plugin
Code: Alles auswählen
Func _ISN_Set_Variable_in_Plugin($hGUI = "", $Varname = "", $Value = "")
If $hGUI = "" Then Return ""
If $Varname = "" Then Return ""
If $Value = "" Then Return ""
If IsArray($Value) Then
;Array
$array_string = _ArrayToString($Value, ":rowdelim:", Default, Default, ":coldelim:")
_Write_ISN_Debug_Console("_ISN_Set_Variable_in_Plugin > Checkpoint 1 - a", 1)
_ISN_Send_Message_to_Plugin($hGUI, "isn_set_var_in_plugin" & $Plugin_System_Delimiter & $Varname & $Plugin_System_Delimiter & $array_string)
Else
;Variable
_Write_ISN_Debug_Console("_ISN_Set_Variable_in_Plugin > Checkpoint 1 - b", 1)
_ISN_Send_Message_to_Plugin($hGUI, "isn_set_var_in_plugin" & $Plugin_System_Delimiter & $Varname & $Plugin_System_Delimiter & $Value)
EndIf
_Write_ISN_Debug_Console("_ISN_Set_Variable_in_Plugin > Checkpoint 2", 1)
Local $result = _ISN_Wait_for_Message_from_Plugin($hGUI, "isn_set_var_in_plugin", 5000, $Varname)
_Write_ISN_Debug_Console("_ISN_Set_Variable_in_Plugin > Checkpoint 3", 1)
If @error Or $result = "" Then
Return -1
SetError(-1)
EndIf
Return _Pluginstring_get_element($result, 3)
EndFunc ;==>_ISN_Set_Variable_in_Plugin
"ISN_Addon_Pluginsystem" => _ISN_Wait_for_Message_from_Plugin
Code: Alles auswählen
Func _ISN_Wait_for_Message_from_Plugin($Plugin_Window = "", $Message = "", $Timeout = 1500, $Message_Text = "")
If $Plugin_Window = "" Then Return
If $Message = "" Then Return
If $Timeout = "" Then Return
While 1
_Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > Timout left="&$Timeout, 1)
If $ISN_Studio_Plugin_Last_Received_Message <> "" Then
_Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > MSG Received > Check 1", 1)
If _Pluginstring_get_element($ISN_Studio_Plugin_Last_Received_Message, 0) = $Plugin_Window And StringLower(_Pluginstring_get_element($ISN_Studio_Plugin_Last_Received_Message, 1)) = StringLower($Message) Then
_Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > MSG Received > Check 2", 1)
If $Message_Text <> "" Then
_Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > MSG Received > Check 2.1", 1)
If StringLower(_Pluginstring_get_element($ISN_Studio_Plugin_Last_Received_Message, 2)) = StringLower($Message_Text) Then ExitLoop
Else
_Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > MSG Received > Check 2.2", 1)
ExitLoop
EndIf
EndIf
EndIf
;~ _Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > Ping 1", 1)
$Timeout = $Timeout - 100
;~ _Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > Ping 2", 1)
If Not WinExists($Plugin_Window) Then $Timeout = -1 ;Plugin ist abgestürzt?!
;~ _Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > Ping 3", 1)
If $Timeout < 0 Then
_Write_ISN_Debug_Console("Wait for message action timeout! " & $Plugin_Window & " (" & $Message & ")" & $Message_Text, 3, 1, 0, 0, $ISN_Debug_Console_Category_Plugin)
ExitLoop
EndIf
;~ _Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > Ping 4", 1)
Sleep(100)
WEnd
If $Timeout < 0 Then
_Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > Exit with error", 1)
Return -1
SetError(-1)
EndIf
_Write_ISN_Debug_Console("_ISN_Wait_for_Message_from_Plugin > Exit", 1)
Return $ISN_Studio_Plugin_Last_Received_Message
EndFunc ;==>_ISN_Wait_for_Message_from_Plugin
Der Debugcode sieht dann so aus wie im Screenshot.
Zu erkennen ist hier, dass nach * der Ladeprozess nicht fortgeführt wird
* _ISN_Set_Variable_in_Plugin($ISN_Helper_Threads[$ISN_Helper_Scripttree][$ISN_Helper_Handle], "$Studiomodus", $Studiomodus) ;Update $Studiomodus in scripttree thread
Wenn ich diesen Step auskommentiere, dann stockt es bei _Lade_Zuletzt_Verwendete_Dateien_aus_projectISN.
(Ich vermute mal der Call ist also entsprechend wichtig)
Und innerhalb von * wird _ISN_Wait_for_Message_from_Plugin niemals beendet.
Meine Vermutung ist, dass eine Adlib funktion sich aufhängt/endlos wird.
Eine der Autoit Prozesse läuft in diesem Stadium auf 20% CPU auslastung.
Meine Vermutung: die Funktion die "$ISN_Studio_Plugin_Last_Received_Message" updatet
Leider kenne ich mich zu wenig mit dem ISN Code aus und hab es jetzt nach ein paar stunden suchen aufgegeben, diese zu finden.
Hast du sonst eine Idee woran es liegen könnte?
Lieben Gruß
NoNameCode