Datei Kopieren und Starten klappt nicht wie es soll

  • [autoit]If FileExists("NostaleX.dat") = 0 Then
    $registry =RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NosTale(DE)_is1","Inno Setup: App Path")
    if @error then
    Msgbox(16,"Error","Kann Installations Pfad nicht erkennen."&@CRLF&"Datei bitte in den Nostale Ordner Verschieben.")
    exit
    Else
    If $registry & "\" & @ScriptName = @ScriptFullPath then
    msgbox(16,"Error","Kann NostaleX.dat nicht finden."&@CRLF&@ScriptFullPath)
    Exit
    Else
    FileCopy(@ScriptFullPath,$registry,1)
    Run($registry &"\"& @ScriptName)
    Exit
    Endif
    EndIf
    Endif


    ;Secret Funktion :P
    Msgbox(0,"","")[/autoit]



    Das Script guckt erst ob NostaleX.dat im Ordner ist.
    Fals dies nicht der Fall ist guckt es im Registry und gibt den Pfad zurück (schlägt dies fehl gibt es einen Error).
    Befindet sich das Script nun schon im entsprechenden Ordner gibt es eine andere Fehlmeldung das NostaleX.dat nicht gefunden werden konnte.
    Wenn sich das Script nicht dort befindet Kopiert es sich dorthin, führt die Datei dort aus und Schließt sich.


    Jetzt kommt der Teil der nicht so will wie ich :D


    Ich kriege dauerhaft den fehler das NostaleX.dat.
    Füge ich bei FileExist("NostaleX.dat") noch ein @ScriptDir ein (@ScriptDir & "\NostaleX.dat")
    Dann wird die funktion dort ausgeführt wo das andere Script lag (nicht im Script zu sehen :P).


    - NostaleX.dat exestiert im entsprechendem Ordner (Extra @ScriptFullpath im error mit eingebaut)
    - Wenn ich es normal im Ordner starte funktioniert alles normal.


    Was mach ich falsch? :(

  • Hier bitte. ^^



    MfG,
    Nestos.

    [b][align=center][img]http://i51.tinypic.com/j0d7wm.png[/img] [color=#660066]˜ [color=#9988FF]Masken[/color] ˜[/color][/align] E-Dollar [url=http://www.noshacks.de/news-ank%C3%BCndigungen-f2/faq-alles-rund-um-e-dollar-t882/p1.html][color=#4890ff][FAQ] Alles rund um E-Dollar[/color][/url] AutoIt [url=http://www.noshacks.de/autoit-f27/tutorial-guis-erstellen-verwalten-und-sinnvoll-einsetzen-t685/p1.html][color=#4890ff][Tut] GUIs erstellen, verwalten und sinnvoll einsetzen[/color][/url][/b]
  • Bei mir ist der regkey ein anderer ;)


    Deshalb muss ich vllt auch
    [autoit]$registry & "\" & @ScriptName[/autoit]
    nutzen :P (ohne startet er die Datei nicht neu.)
    (Nach dem Pfad kommt kein "\")



    Raus kommt das gleiche wie vorher x,x
    Script gibt error zurück , starte ich es manuell im Nos ordner klappt alles.

  • Das sollte gehen:


    [autoit]#RequireAdmin

    If Not FileExists("NostaleX.dat") Then
    $registry = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NosTale(DE)_is1","InstallLocation")
    If @error Then
    MsgBox(16, "Error", "Kann Installations Pfad nicht erkennen." & @CRLF & "Datei bitte in den Nostale Ordner Verschieben.")
    Exit
    Else
    If $registry & @ScriptName = @ScriptFullPath Then
    MsgBox(16, "Error", "Kann NostaleX.dat nicht finden." & @CRLF & @ScriptFullPath)
    Exit
    Else
    FileCopy(@ScriptFullPath, $registry, 1)
    Run($registry & @ScriptName)
    Exit
    EndIf
    EndIf
    EndIf
    [/autoit]


    MfG,
    Nestos.

    [b][align=center][img]http://i51.tinypic.com/j0d7wm.png[/img] [color=#660066]˜ [color=#9988FF]Masken[/color] ˜[/color][/align] E-Dollar [url=http://www.noshacks.de/news-ank%C3%BCndigungen-f2/faq-alles-rund-um-e-dollar-t882/p1.html][color=#4890ff][FAQ] Alles rund um E-Dollar[/color][/url] AutoIt [url=http://www.noshacks.de/autoit-f27/tutorial-guis-erstellen-verwalten-und-sinnvoll-einsetzen-t685/p1.html][color=#4890ff][Tut] GUIs erstellen, verwalten und sinnvoll einsetzen[/color][/url][/b]
  • musste es etwas abändern... (regkey undso)


    [autoit]#RequireAdmin


    If Not FileExists("NostaleX.dat") Then
    $registry =RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NosTale(DE)_is1","Inno Setup: App Path")
    If @error Then
    MsgBox(16, "Error", "Kann Installations Pfad nicht erkennen." & @CRLF & "Datei bitte in den Nostale Ordner Verschieben.")
    Exit
    Else
    If $registry &"\"& @ScriptName = @ScriptFullPath Then
    MsgBox(16, "Error", "Kann NostaleX.dat nicht finden." & @CRLF & @ScriptFullPath)
    Exit
    Else
    FileCopy(@ScriptFullPath, $registry, 1)
    Run($registry &"\"& @ScriptName)
    Exit
    EndIf
    EndIf
    EndIf
    [/autoit]


    ändert sich nichts