Problem mit selfdelete im Autostart

  • Hi,

    habe hier im Forum folgenden Code gefunden der dafür sorgt, dass nach dem Ausführen eines Autoit Script sich dieses selber löscht.

    Spoiler anzeigen
    [autoit]

    Func _SelfDelete($iDelay = 0)
    Local $sCmdFile
    FileDelete(@TempDir & "scratch.bat")
    $sCmdFile = 'ping -n ' & $iDelay & '127.0.0.1 > nul' & @CRLF _
    & ':loop' & @CRLF _
    & 'del "' & @ScriptFullPath & '" > nul' & @CRLF _
    & 'if exist "' & @ScriptFullPath & '" goto loop' & @CRLF _
    & 'del ' & @TempDir & 'scratch.bat'
    FileWrite(@TempDir & "scratch.bat", $sCmdFile)
    Run(@TempDir & "scratch.bat", @TempDir, @SW_HIDE)
    EndFunc

    [/autoit]

    Funktionier theoretisch auch ohne Probleme.

    Allerdings befindet sich die Autoit exe im Autostartorder im Startmenü und in der .bat wird dann das "ü" von Startmenü als hochgestellte 3 erkannt. Weiß jemand eine Lösung?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (17. August 2009 um 10:20)

  • Genau das ist ja mein Problem mit der Funktion oben die ich gefunden habe. Weil das Autoit script das ich löschen möchte sich eben im Autostartverzeichniss des Startmenüs befindet.

    Habs jetzt über den nicht so schönen weg gemacht und die bat halt per Hand erstellt.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (17. August 2009 um 10:20)

  • Hallo,

    schau dir mal in der Hilfe die Befehle unter Macro Refernce - Directory an. Dort werden die Systempfade aufgelistet die mit AutoIt direkt angesprochen werden können, auch

    @StartMenuDir -> path to current user's Start Menu

    Vielleicht hilft dir das ja weiter.

    Gruß

    Steffen