簡體   English   中英

NSIS讀取注冊表項對於Postgresql返回空

[英]NSIS read registry key returns empty for postgresql

使用NSIS示例讀取注冊表項,我嘗試讀取postgres注冊表項,但始終返回空,我驗證了路徑正確,但是NSIS ReadRegStr顯示為帶引號的空,不帶引號。 (原始示例從Software \\ Microsoft \\ Windows \\ CurrentVersion中讀取,並且可以正確恢復鍵值)

loop1:
    ClearErrors
    EnumRegValue $1 HKLM "SOFTWARE\PostgreSQL\Installations\postgresql-x64-10" $0
    IfErrors done
    IntOp $0 $0 + 1
    ReadRegStr $2 HKLM SOFTWARE\PostgreSQL\Installations\postgresql-x64-10 $1
    MessageBox MB_YESNO|MB_ICONQUESTION "$1 = $2$\n$\nMore?" IDYES loop1
done:

有什么建議嗎? 謝謝

Windows的64位版本具有兩個注冊表視圖。

注冊表重定向器通過在WOW64上提供注冊表某些部分的單獨邏輯視圖來隔離32位和64位應用程序。 注冊表重定向器攔截對它們各自的邏輯注冊表視圖的32位和64位注冊表調用,並將它們映射到相應的物理注冊表位置。 重定向過程對應用程序是透明的。 因此,即使32位應用程序存儲在64位Windows上的其他位置,它也可以像在32位Windows上運行一樣訪問注冊表數據。

使用SetRegView從NSIS中的64位視圖中讀取:

Section
SetRegView 64
ReadRegStr ...
SetRegView lastused
SectionEnd

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM