Deinstallation - nicht möglich

  • Wenn ich ein eigenes Skript deinstallieren möchte, löscht mein Skript zuerst die Registryeinträge etc.

    Dann muss er aber den Ordner löschen.

    In diesem Ordner ist allerdings auch die Deinstallationsdatei (im windowsordner mag ichs nicht).

    Deshalb kann er den Ordner nicht löschen!

    Wie umgehe ich dies?

    Wenn ich eine Batch tippe o.ä. bleibt ja trotzdem etwas zurück / es ist länger als erhofft.

    Hat jemand eine gute / bewährte Idee?

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

    Einmal editiert, zuletzt von Dankeschön (31. Mai 2008 um 22:45)

  • mach doch die deinstallationsdatei die die ordner usw löscht in den Temp ordner, da stört es so gut wie keinen ;)

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Das ist es jetzt auch nicht.

    Besnders weil es ja "Tuning"-Tools gibt,die den Tempordner regelmäßig leeren...

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Mach doch so eine Uninstall.exe:

    Spoiler anzeigen
    [autoit]

    If @ScriptDir <> @TempDir Then
    FileCopy(@ScriptFullPath,@TempDir & "\" & @ScriptName,1)
    Run(@TempDir & "\" & @ScriptName)
    Exit
    EndIf
    $UnInstPath = RegRead("HKLM\Programme\Programm","InstallPath")
    Delete Operations
    _SelfDelete()
    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]


    Wenn dein Pfad in der Registry steht kannst du ihn da auslesen, sonst als Parameter übergeben :)

  • Das Problem ist aber,dann bleibt ja eine Batch übrig !
    Und wie soll man die möglichst gut (automatisch) entfernen lassen?


    Aber cih glaube,ich werde es so tun müssen.
    Wie machen das andere programme eigentlich?

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Die kann sich auch nicht selbst löschen, das macht Windows( bzw. die CMD.exe die die DLL interpretiert und vllt. auch noch ein anderes Programm aufruft) :P ;)

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)