Grüß dich,
kann ich dich mal um deine Expertiese bitten?
Leider habe ich eine Loop beim Proejekt erstellen.
Hier ein Paar Eckdaten
> Win11
> ISN 1.14
>> Sampe Projekt anlegen => Nein
>> Für alle Benutzer installiert
> Alles frisch installiert
> Als Admin selbes Problem
Mehr details im Screenshot
Gibt es irgendwelche Log in denen ich nachsehen könnte?
Lieben Gruß
NoNameCode
Projekt Erstellen Loop
-
- Beiträge: 4
- Registriert: Fr 21. Okt 2022, 20:46
- Kontaktdaten:
Projekt Erstellen Loop
- Dateianhänge
-
- Screenshot 2023-02-22 053010.png (28.88 KiB) 6994 mal betrachtet
Re: Projekt Erstellen Loop
Hallo
Du kannst in den ISN Programmeinstellungen mal die Debug Console des ISN aktivieren. Vielleicht erfahren wir dann mehr wo es hackt.
(Programmeinstellungen -> Allgemein -> Erweitert -> Debug -> Erweiterte Debug Console beim Start anzeigen. Danach ISN Neustarten und die Console sollte erscheinen.)
Alternativ kannst du noch folgendes Probieren:
- DarkMode Skin deaktivieren
- Evtl. pfuscht ein Virenscanner drein? Den Testweise mal deaktivieren
- In den Programmeinstellungen folgende Optionen prüfen:
Allgemein -> Beim Öffnen zuvor geöffnete Tabs wiederherstellen -> Deaktivieren
Allgemein -> Beim Öffnen automatisch Hauptdatei laden -> Deaktivieren
Allgemein -> Auch im Projektmodus die Verknüpfung zu ... -> Deaktivieren
Grüße, Christian
Du kannst in den ISN Programmeinstellungen mal die Debug Console des ISN aktivieren. Vielleicht erfahren wir dann mehr wo es hackt.
(Programmeinstellungen -> Allgemein -> Erweitert -> Debug -> Erweiterte Debug Console beim Start anzeigen. Danach ISN Neustarten und die Console sollte erscheinen.)
Alternativ kannst du noch folgendes Probieren:
- DarkMode Skin deaktivieren
- Evtl. pfuscht ein Virenscanner drein? Den Testweise mal deaktivieren
- In den Programmeinstellungen folgende Optionen prüfen:
Allgemein -> Beim Öffnen zuvor geöffnete Tabs wiederherstellen -> Deaktivieren
Allgemein -> Beim Öffnen automatisch Hauptdatei laden -> Deaktivieren
Allgemein -> Auch im Projektmodus die Verknüpfung zu ... -> Deaktivieren
Grüße, Christian
-
- Beiträge: 4
- Registriert: Fr 21. Okt 2022, 20:46
- Kontaktdaten:
Re: Projekt Erstellen Loop
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
"ISN_Addon_Pluginsystem" => _ISN_Set_Variable_in_Plugin
"ISN_Addon_Pluginsystem" => _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
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
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
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
-
- Beiträge: 4
- Registriert: Fr 21. Okt 2022, 20:46
- Kontaktdaten:
Re: Projekt Erstellen Loop
Da hats mir wohl den Screenshot rausgehauen o.O
- Dateianhänge
-
- Screenshot.png (189.41 KiB) 6978 mal betrachtet
Re: Projekt Erstellen Loop
Danke für die ausführlichen Infos.
Ich vermute folgendes: Das ISN startet beim Start einen zweiten Thread (weiter autoit3.exe) in dem der gesamte Skriptbaum-Teil des ISN abgehandelt wird.
Dieser Thread fungiert als Plugin und beim Laden des Projektes werden dem Thread gewisse Pfade und Werte mitgeteilt. Komisch ist, die von dir genannte CPU auslasstung des Prozesses (Threads), also was auch immer der da gerade macht dürfte die normalen abläufe stören. Ich verstehe zwar auch noch nicht was das ganze mit den Skins aufsich hat, aber ich werde das ganze mal versuchen nachzustellen. (Sobald ich eine Win11 Kiste bei mir habe)
Aber checke bitte mal folgendes:
Ich gehe mal davon aus dass du die Source Version des ISN verwendest. Möglicherweise startet das ISN selbst in einer anderen AutoIt Version bzw. Bitarchitektur als der Thread. Der Thread wird immer mit einer 32-bit Version von Autoit.exe ausgeführt, welche sich im \Data Verzeichnis des ISN befindet. Falls bei dir nun das ISN mit der 64-Bit exe von Autoit gestart wird, und der Thread in 32-Bit führt dies auch unweigerlich zu Problemen.
Du könntest dir Testweise mal das Compiled Packet von meiner Webseite laden und dort das ISN mit der AutoIt_Studio.exe starten. Diese .exe dient nur als "launcher" für die .a3x Datei und die integrierte 32-Bit Version von Autoit. Hiermit sollte zumindest das 64/32 Bit Thema mal ausgeschlossen sein.
Alternativ empfehle ich dir das Skin mal komplett zu deaktivieren.
Bitte um Info, falls es was neues gibt.
Grüße, Christian
Ich vermute folgendes: Das ISN startet beim Start einen zweiten Thread (weiter autoit3.exe) in dem der gesamte Skriptbaum-Teil des ISN abgehandelt wird.
Dieser Thread fungiert als Plugin und beim Laden des Projektes werden dem Thread gewisse Pfade und Werte mitgeteilt. Komisch ist, die von dir genannte CPU auslasstung des Prozesses (Threads), also was auch immer der da gerade macht dürfte die normalen abläufe stören. Ich verstehe zwar auch noch nicht was das ganze mit den Skins aufsich hat, aber ich werde das ganze mal versuchen nachzustellen. (Sobald ich eine Win11 Kiste bei mir habe)
Aber checke bitte mal folgendes:
Ich gehe mal davon aus dass du die Source Version des ISN verwendest. Möglicherweise startet das ISN selbst in einer anderen AutoIt Version bzw. Bitarchitektur als der Thread. Der Thread wird immer mit einer 32-bit Version von Autoit.exe ausgeführt, welche sich im \Data Verzeichnis des ISN befindet. Falls bei dir nun das ISN mit der 64-Bit exe von Autoit gestart wird, und der Thread in 32-Bit führt dies auch unweigerlich zu Problemen.
Du könntest dir Testweise mal das Compiled Packet von meiner Webseite laden und dort das ISN mit der AutoIt_Studio.exe starten. Diese .exe dient nur als "launcher" für die .a3x Datei und die integrierte 32-Bit Version von Autoit. Hiermit sollte zumindest das 64/32 Bit Thema mal ausgeschlossen sein.
Alternativ empfehle ich dir das Skin mal komplett zu deaktivieren.
Bitte um Info, falls es was neues gibt.
Grüße, Christian
Re: Projekt Erstellen Loop
Kurze Ergänzung:
Hab mir mal schnell eine Win11 VM "besorgt" und kann den von dir genannten Fehler zum Teil bestätigen. (Sofern dark mode aktiv ist)
Hat also doch nichts mit der 64/32 Bit Thematik zu tun. Zumindest in meiner VM wird das Projekt schon geladen, es dauert nur etwas länger.
Ich prüfe das mal.
Einstweil würde ich das Skin einfach deaktiviert lassen. Dann funktioniert, zumindest in meiner Win11 VM, das ISN normal.
Edit:
Echt komisch. Habe nun Windows 11 in der aktuellsten Version mal komplett neu auf einer Maschine installiert und hier besteht das Problem nicht mehr
Hab mir mal schnell eine Win11 VM "besorgt" und kann den von dir genannten Fehler zum Teil bestätigen. (Sofern dark mode aktiv ist)
Hat also doch nichts mit der 64/32 Bit Thematik zu tun. Zumindest in meiner VM wird das Projekt schon geladen, es dauert nur etwas länger.
Ich prüfe das mal.
Einstweil würde ich das Skin einfach deaktiviert lassen. Dann funktioniert, zumindest in meiner Win11 VM, das ISN normal.
Edit:
Echt komisch. Habe nun Windows 11 in der aktuellsten Version mal komplett neu auf einer Maschine installiert und hier besteht das Problem nicht mehr