2011-12-15 58 views
1

我正在更新NSIS安裝腳本從XP到Win7的過程。由於未知的原因,即使以管理員身份運行,安裝程序也無法在Win7下運行時寫入註冊表。安裝程序中的嵌入式UAC清單設置爲需要管理員權限(通過在腳本中指定RequestExecutionLevel admin)。此外,我試圖右鍵單擊安裝程序並選擇以管理員身份運行。在操作系統中關閉UAC也不能解決問題。NSIS:無法寫入註冊表(HKLM Software ...)在Windows 7

當我在XP下運行相同的安裝程序時,註冊表項就像它應該寫的一樣。

我配對了我的安裝腳本來嘗試隔離問題:

!define APP_NAME  "MyTestApp" 

Name     "${APP_NAME}" 
OutFile    "${APP_NAME} Setup.exe" 

RequestExecutionLevel admin 
Page instfiles 

Section -Core 
    SetDetailsView show 

    WriteRegStr HKLM "Software\XyzCompany\${APP_NAME}\Installation" "VersionString" "V0.0.0" 

    SetAutoClose false 
SectionEnd 

在另一方面,我能寫受限文件夾(如C:\ ProgramData)(僅管理員有寫權限在這裏默認)。我在這裏錯過了非常明顯的東西嗎?運行NSIS 2.45。

+0

你嘗試v2.46?這是Win7的x86或x64? – Anders

回答

2

使用SetRegView寫入x64上的「真實」HKLM\Software密鑰。

使用Process Monitor調查其他註冊表寫入問題...

+1

運行64位Win7。是的,事實證明這個值寫入了註冊表,但在Wow6432Node分支下。我不知道在64位機器上有32位應用程序的單獨註冊表分支。 Takk for hjelpen !! – kashiraja

相關問題