在專案的1.x版本中使用的圖示“A.ico”作為程式的桌面快捷方式的圖示,程式安裝包使用NSIS工具打包,能正確的安裝到系統(Win7)上,程式的快捷方式圖示也顯示的是“A.ico”。后來在2.x版本中將程式的圖示換為“B.ico”,同樣使用NSIS工具打包,安裝到系統后發現桌面的快捷方式圖示還是“A.ico”那張,但是右鍵打開其屬性對話框發現其中顯示的是“B.ico”這張圖示。
從現象上看,應該是系統沒有將新圖示及時重繪。請教高手這種情況在NSIS打包腳本中添加什么代碼可以解決?
uj5u.com熱心網友回復:
樓主同問啊, 我的是安裝完成后要重繪或者等一段時間后才正常顯示! 樓主解決了沒uj5u.com熱心網友回復:
沒有解決,還是沒弄......
uj5u.com熱心網友回復:
rem 關閉Windows explorer
taskkill /f /im explorer.exe
rem 清理系統圖示快取資料庫
attrib -h -s -r "%userprofile%\AppData\Local\IconCache.db"
del /f "%userprofile%\AppData\Local\IconCache.db"
attrib /s /d -h -s -r "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\*"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_32.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_96.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_102.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1024.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_idx.db"
del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_sr.db"
rem 清理 系統托盤記憶的圖示
echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams
echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream
rem 重啟Windows外殼程式explorer
start explorer
把這段代碼保存到一個bat腳本中,運行后在任務管理器手動新建下explorer任務即可
uj5u.com熱心網友回復:
向3樓學習!向3樓致敬!!
uj5u.com熱心網友回復:
我遇到的問題是圖示不顯示的問題,在這里回復下解決辦法:圖示不顯示的原因是創建桌面快捷方式的時間早于安裝對應exe檔案的時間,所以只需要調整陳述句,使得創建exe檔案的時間早于快捷方式
的時間就可以解決問題,例如
File "..\ReleaseGreen\test.exe"
# 接下來這些陳述句必須放在 File "..\ReleaseGreen\test.exe" 的后面,否則桌面快捷方式的圖示可能需要手動重繪桌面后才會顯示
CreateDirectory "$SMPROGRAMS\測驗系統"
CreateShortCut "$DESKTOP\測驗系統.lnk" "$INSTDIR\test.exe"
CreateShortCut "$SMPROGRAMS\測驗系統\測驗系統.lnk" "$INSTDIR\test.exe"
uj5u.com熱心網友回復:
佩服您的分享精神,幾年前的貼子還有人在回復!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/108745.html
標籤:工具平臺和程序庫
上一篇:多執行緒日志列印串聯,列印錯亂,程式卻沒有崩潰,完成不知道是什么狀態
下一篇:C語言
