Windows Desktop Icon uninstall
Verfasst: 17 Mai 2016, 14:58
Hallo zusammen,
ich habe bei einem uinstall-Skript ein Problem mit dem löschen von einem Software Icon auf dem Windows 7 Desktop.
Problem:
Bei Software (Axure 7) gibt es unter es unter dem Ordner C:\Users\Public\Desktop\Axure RP Pro.0.lnk einen Desktop Icon der jedem Benutzer dadruch geladen wird.
Bei meinem Uninstall Aufruf über das Delsub32.ins wird auch alles brav gelöscht, bis eben auf der Desktop Icon von diesem Pfad
("%ScriptPath%\AxureRP-Pro-7.0.0.3174-Setup" /s MODIFY=FALSE REMOVE=TRUE UNINSTALL=YES)
Lösungsansatz
Ich habe jetzt ein BatchFile gebastelt was normal unter Windows 7 auch den Icon löscht - das funktioniert.
@REM File to be deleted
SET FileToDelete="C:\Users\Public\Desktop\Axure RP Pro 7.0.lnk"
@Try to delete the file only if it exists
IF EXIST %FileToDelete% del /F %FileToDelete%
@REM If the file wasn't deleted for some reason, stop and error
IF EXIST %FileToDelete% exit 1
Frage
Jetzt dachte ich mir binde ich einfach diese Befehlszeilen mit Winbatch in das Deslub32.ins Skript ein und es sollte den Icon löschen(?) tut es aber leider nicht. Warum? Gibt es da einen Fehler beim Ausführen von dem Delsub32.exe dass es keinen Zugriff auf den Pfad Public hat, oder wie kann ich diese blöde .lnk Datei von dort am einfachsten löschen?
DefVar $Axure7Exe$
DefVar $Axure8Exe$
;DefVar $Axure7nk$
Set $Axure7Exe$ = "%ProgramFiles32Dir%\Axure\Axure RP Pro 7.0\AxureRP.exe"
Set $Axure8Exe$ = "%ProgramFiles32Dir%\Axure\Axure RP 8\AxureRP8.exe"
if FileExists($Axure7Exe$)
comment "Found Axure 7, will start uninstall"
Winbatch_uninstall_Axure7
Winbatch_uninstall_Axure7_Icon
endif
if FileExists($Axure8Exe$)
comment "Found Axure8, will start uninstall"
Winbatch_uninstall_Axure8
endif
;if FileExists($Axure7nk$)
; comment "Files uinstall"
; [Files_uninstall]
;endif
[Winbatch_uninstall_Axure7]
"%ScriptPath%\AxureRP-Pro-7.0.0.3174-Setup" /s MODIFY=FALSE REMOVE=TRUE UNINSTALL=YES
[Winbatch_uninstall_Axure8]
"%ScriptPath%\AxureRP-Setup.exe" /s MODIFY=FALSE REMOVE=TRUE UNINSTALL=YES
;[Files_uninstall]
;delete -f "C:\Users\Public\Dekstop\Axure RP Pro 7.0.lnk"
[Winbatch_uninstall_Axure7_Icon]
@REM File to be deleted
SET FileToDelete = "C:\Users\Public\Desktop\Axure RP Pro 7.0.lnk"
@Try to delete the file only if it exists
IF EXIST %FileToDelete% del /F %FileToDelete%
@REM If the file wasn't deleted for some reason, stop and error
IF EXIST %FileToDelete% exit 1
Danke vorab!
Viele Grüße,
Nova
ich habe bei einem uinstall-Skript ein Problem mit dem löschen von einem Software Icon auf dem Windows 7 Desktop.
Problem:
Bei Software (Axure 7) gibt es unter es unter dem Ordner C:\Users\Public\Desktop\Axure RP Pro.0.lnk einen Desktop Icon der jedem Benutzer dadruch geladen wird.
Bei meinem Uninstall Aufruf über das Delsub32.ins wird auch alles brav gelöscht, bis eben auf der Desktop Icon von diesem Pfad

("%ScriptPath%\AxureRP-Pro-7.0.0.3174-Setup" /s MODIFY=FALSE REMOVE=TRUE UNINSTALL=YES)
Lösungsansatz
Ich habe jetzt ein BatchFile gebastelt was normal unter Windows 7 auch den Icon löscht - das funktioniert.
@REM File to be deleted
SET FileToDelete="C:\Users\Public\Desktop\Axure RP Pro 7.0.lnk"
@Try to delete the file only if it exists
IF EXIST %FileToDelete% del /F %FileToDelete%
@REM If the file wasn't deleted for some reason, stop and error
IF EXIST %FileToDelete% exit 1
Frage
Jetzt dachte ich mir binde ich einfach diese Befehlszeilen mit Winbatch in das Deslub32.ins Skript ein und es sollte den Icon löschen(?) tut es aber leider nicht. Warum? Gibt es da einen Fehler beim Ausführen von dem Delsub32.exe dass es keinen Zugriff auf den Pfad Public hat, oder wie kann ich diese blöde .lnk Datei von dort am einfachsten löschen?
DefVar $Axure7Exe$
DefVar $Axure8Exe$
;DefVar $Axure7nk$
Set $Axure7Exe$ = "%ProgramFiles32Dir%\Axure\Axure RP Pro 7.0\AxureRP.exe"
Set $Axure8Exe$ = "%ProgramFiles32Dir%\Axure\Axure RP 8\AxureRP8.exe"
if FileExists($Axure7Exe$)
comment "Found Axure 7, will start uninstall"
Winbatch_uninstall_Axure7
Winbatch_uninstall_Axure7_Icon
endif
if FileExists($Axure8Exe$)
comment "Found Axure8, will start uninstall"
Winbatch_uninstall_Axure8
endif
;if FileExists($Axure7nk$)
; comment "Files uinstall"
; [Files_uninstall]
;endif
[Winbatch_uninstall_Axure7]
"%ScriptPath%\AxureRP-Pro-7.0.0.3174-Setup" /s MODIFY=FALSE REMOVE=TRUE UNINSTALL=YES
[Winbatch_uninstall_Axure8]
"%ScriptPath%\AxureRP-Setup.exe" /s MODIFY=FALSE REMOVE=TRUE UNINSTALL=YES
;[Files_uninstall]
;delete -f "C:\Users\Public\Dekstop\Axure RP Pro 7.0.lnk"
[Winbatch_uninstall_Axure7_Icon]
@REM File to be deleted
SET FileToDelete = "C:\Users\Public\Desktop\Axure RP Pro 7.0.lnk"
@Try to delete the file only if it exists
IF EXIST %FileToDelete% del /F %FileToDelete%
@REM If the file wasn't deleted for some reason, stop and error
IF EXIST %FileToDelete% exit 1
Danke vorab!
Viele Grüße,
Nova