Ich habe hier einen Code, der mir Kopfzerbrechen bereitet. Ich habe absolut keine Ahnung, wo der Fehler liegt, mal davon abgesehen, dass mir der Errorcode 0 bei RegRead ausgegeben wird. Das gibt es laut Hilfe gar nicht.
Problem: Ich lese einen RegKey aus, dieser ist ein Pfad mit Leerzeichen. Dieser bekommt dann noch Anführungszeichen verpasst, damit er ausgeführt wird, ohne Probleme zu machen.
Beim ersten Mal kann er den Pfad nicht finden, soll auch so sein. Aber dann schreibt er ihn ja in die Registry. Beim zweiten Mal liest er ihn aus, und sollte in den Else-Block springen, aber er tut es nicht. Ich sehe den If-Block, die MessageBox mit Errorcode 0 und der korrekten Pfadangabe.
Was läuft da schief?
Spoiler anzeigen
$pfad = '"' & RegRead("HKLM\Software\DICEworks\TESCS", "Tecras ModTranslator") & '"'
If $pfad = @error Then
MsgBox(0, @error, $pfad) ;<-- Errorcode 0??
$pfad = FileOpenDialog("TES CS++", @ScriptDir, "tecraModTranslator.exe (*.exe)")
RegWrite("HKLM\Software\DICEworks\TESCS", "Tecras ModTranslator", "REG_SZ", $pfad)
$pid = Run('"' & $pfad & '"')
Else
If FileExists($pfad) Then
$pid = Run($pfad)
Else
$pfad = FileOpenDialog("TES CS++", @ScriptDir, "tecraModTranslator.exe (*.exe)")
RegWrite("HKLM\Software\DICEworks\TESCS", "Tecras ModTranslator", "REG_SZ", $pfad)
$pid = Run( '"' & $pfad & '"')
EndIf
EndIf