NSIS解除安裝後無法刪除開始選單中的內容

2021-09-06 20:57:55 字數 1307 閱讀 7380

我們在安裝程式時通常會使用createshortcut命令來建立乙個快捷方式,如下,是在開始–>啟動項 裡建立run.bat的快捷方式。

createshortcut "$smprograms\啟動\run.lnk" "$instdir\bin\run.bat"

當我們在執行解除安裝操作時是這樣刪除的,如下

delete "$smprograms\啟動\run.lnk"

但是,無論怎麼樣都刪除不掉。

下面提供以下解決方案和為什麼刪不掉的原因:

原因:因為nsis中使用createshortcut建立快捷方式時會在每乙個人使用者下面都建立快捷方式,然後delete刪的時候卻只是在當前使用者下,因此怎麼刪也刪不掉。

解決方案:

1.在當前使用者下建立快捷方式。只需新增requestexecutionlevel user即可。

requestexecutionlevel user   section   createdirectory "$smprograms\vista test"   createshortcut  "$smprograms\vista test\hello.lnk" $windir\notepad.exe   writeuninstaller $exedir\uninst.exe sectionend   section uninstall   delete "$smprograms\vista test\hello.lnk"   rmdir "$smprograms\vista test" sectionend
2.刪除所有使用者下的快捷方式。首先新增requestexecutionlevel admin,然後在建立快捷方式和刪除快捷方式的地方加上setshellvarcontext all即可。

requestexecutionlevel admin #note: you still need to check user rights with userinfo!   section   setshellvarcontext all   createdirectory "$smprograms\vista test"   createshortcut  "$smprograms\vista test\hello.lnk" $windir\notepad.exe   writeuninstaller $exedir\uninst.exe sectionend   section uninstall   setshellvarcontext all   delete "$smprograms\vista test\hello.lnk"   rmdir "$smprograms\vista test" sectionend

NSIS解除安裝後無法刪除開始選單中的內容

我們在安裝程式時通常會使用createshortcut命令來建立乙個快捷方式,如下,是在開始 啟動項 裡建立run.bat的快捷方式。createshortcut smprograms 啟動 run.lnk instdir bin run.bat 當我們在執行解除安裝操作時是這樣刪除的,如下 del...

解除安裝迅雷後dll檔案刪除

為例,當我們用迅雷自帶的解除安裝程式進行解除安裝後,我們發現在迅雷的安裝目錄下的子目錄中 thundernetwork thunder comdlls 有乙個叫xunleibho 002的dll檔案無法直接刪除。不過怎麼才能知道是哪個程序呼叫了這個dll檔案呢?其實很簡單,用 windows xp自...

Mac解除安裝Fiddler後無法上網的解決方法

fiddler是乙個很好用的網路資料抓包工具,具體用法就不多說了,今天聊一下如何解決解除安裝後無法上網的問題。原來,fiddler的工作原理就是 內建乙個 作為客戶端和網路的中介。在fiddler啟動後,會自動新增乙個 ip 為127.0.0.1 迴路 埠號為8888的系統 當fiddler退出後,...