我正在運行Windows 8.1並使用NSIS爲我的java程序創建啓動程序。要嘗試腳本編寫,我只是做了一個醜陋的A.ico,並將其用於我的Program.exe。現在我做了一個漂亮的B.ico並使用相同的腳本,我試圖將其設置爲Program.exe的圖標。無法更改具體OutPut .exe名稱(NSIS)的.exe圖標
事情是,即使我相應地更改腳本,A.ico仍然用於Program.exe,我似乎無法改變這一點。這是超級怪異的,因爲如果我將輸出.exe的名稱更改爲例如OtherProgram.exe選擇正確的B.ico。如果我然後將.exe重新命名爲Program.exe,則圖標在我眼前切換回A.ico!
我錯過了什麼嗎?我的系統是否保存過,每個名爲Program.exe的文件都必須有圖標A.icon,僅僅是因爲我在第一個腳本中使用了該圖標?
Name "Program"
Caption "LMX Launcher"
Icon "hidden\B.ico"
OutFile "Program.exe"
RequestExecutionLevel user
!include "FileAssociation.nsh"
SilentInstall silent
AutoCloseWindow true
ShowInstDetails nevershow
Section ""
Call GetJRE
Pop $R0
StrCpy $0 '$R0 -jar hidden\getdown.jar hidden\'
SetOutPath $EXEDIR
ExecWait $0
${unregisterExtension} ".lm" "LM-fil"
${registerExtension} "Program.exe" ".lm" "LM-fil"
SectionEnd
Function GetJRE
Push $R0
Push $R1
ClearErrors
StrCpy $R0 "$EXEDIR\jre\bin\javaw.exe"
IfFileExists $R0 JreFound
StrCpy $R0 ""
ClearErrors
ReadEnvStr $R0 "JAVA_HOME"
StrCpy $R0 "$R0\bin\javaw.exe"
IfErrors 0 JreFound
ClearErrors
ReadRegStr $R1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion"
ReadRegStr $R0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$R1" "JavaHome"
StrCpy $R0 "$R0\bin\javaw.exe"
IfErrors 0 JreFound
StrCpy $R0 "javaw.exe"
JreFound:
Pop $R1
Exch $R0
FunctionEnd