1. 程式人生 > >NSIS訪問X64登錄檔

NSIS訪問X64登錄檔

NSIS生成的安裝程式是32位程式,在64位系統上訪問登錄檔會重定向到wow6432node.

使用 SetRegView 64 將允許安裝程式在 x64 中訪問登錄檔鍵值。

它將影響 DeleteRegKey, DeleteRegValue, EnumRegKey, EnumRegValue, ReadRegDWORD, ReadRegStr, WriteRegBin, WriteRegDWORD, WriteRegStrWriteRegExpandStr

它不會影響 InstallDirRegKey。另外,在函式 .onInit 中也可使用 ReadRegStr 讀取登錄檔。

SetRegView 32
ReadRegStr $0 HKLM Software\Microsoft\Windows\CurrentVersion ProgramFilesDir
DetailPrint $0 # prints C:\Program Files (x86)
SetRegView 64
ReadRegStr $0 HKLM Software\Microsoft\Windows\CurrentVersion ProgramFilesDir
DetailPrint $0 # prints C:\Program Files
Function .onInit
  SetRegView 64
  ReadRegStr $INSTDIR HKLM Software\NSIS
"" SetRegView 32 FunctionEnd

相關推薦

NSIS訪問X64

NSIS生成的安裝程式是32位程式,在64位系統上訪問登錄檔會重定向到wow6432node. 使用 SetRegView 64 將允許安裝程式在 x64 中訪問登錄檔鍵值。 它將影響 Delete

c++ Win x64 操作

是否為 x64 的作業系統 bool Utility::IsWow64() { typedefBOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCESSfnIsWow64Process; B

x64系統的判斷和x64下檔案和訪問的重定向——補記

        原來的地址之前在(3)裡面討論過%ProgramFiles%這個環境變數的指向問題,其實在x64環境下面還有兩個環境變數可以使用:%ProgramFiles(x86)%和%ProgramW6432%,如果你的系統安裝在C盤,那麼對應關係是這樣的(注32位系統只

檔案訪問被拒絕,TrustedInstaller,訪問被拒絕,permission許可權,願願。

        正常情況下,使用者不需要關注許可權,因為系統為我們做好了一切。每一個使用者的許可權都已經被系統定義,這樣可以避免非授權訪問檔案和資料夾,以及其他受限物件。      

使用者模式去掉有時不能訪問問題

指令碼: .bat @echo off color 0c rem 設定"HKEY_LOCAL_MACHINE\Win10\ControlSet001\Enum\PCI"的所有者為:Administratros >>test.inf echo.[Version] >>test.in

Win10下Visual Studio 2015編譯報“無法註冊程式集***dll- 拒絕訪問。請確保您正在以管理員身份執行應用程式。對項”***“的訪問被拒絕。”問題解決

原來在Win7下Visual Studio2008跑的好好的程式,現在在Win10下編譯報“無法註冊程式集dll- 拒絕訪問。請確保您正在以管理員身份執行應用程式。對登錄檔項”“的訪問被拒絕。”的錯誤。報錯資訊明面上看是讓你用管理員身份執行Visual Studio,然後開啟工程編譯就好了。

Java訪問

/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { // Runtime.getRuntime().exec

寫入指令碼沒錯,但指定位置未寫入x64

使用INNO打包程式,在打包指令碼中添加了 [registry] 寫入登錄檔,指令碼沒問題,但就是在指定位置沒成功寫入登錄檔 後反覆研究,經群裡詢問得知是64位系統重定位問題,實際登錄檔有寫入成功,只不過是寫到了wowx86x64node下了,   解決: 只需在指令碼的

NSIS 檢測程式版本號、的寫入與讀取例項 (學習二)

 !define PRODUCT_NAME "pkpm" !define PRODUCT_VERSION "1.0" !define PRODUCT_PUBLISHER "My company, Inc." !define PRODUCT_UNINST_KEY "Sof

【Java學習】java程式訪問(win10)

最近在問答社群碰到一個問題,,用java訪問“HKEY_CURRENT_USER”目錄的需求。查了很多資料,,終於搞定了,,在此做以記錄。 一,java官方API(Preferences) 首先,這個類用起來比較方便,,但是有許多限制,,只能訪問“HKE

NSIS 註冊64位控制元件及修改鍵的許可權方法

1 註冊控制元件 註冊32位控制元件:RegDLL "c:\windows\system32\x.dll" 註冊64位控制元件: 禁止檔案重定向,使用系統命令註冊控制元件,如下: ExecWait ‘“$SYSDIR\regsvr32.exe" /s "c:\windows

Inno setup 訪問鍵值,獲取軟體安裝路徑

; 指令碼由 Inno Setup 指令碼嚮導 生成!; 有關建立 Inno Setup 指令碼檔案的詳細資料請查閱幫助文件![Setup]; 注: AppId的值為單獨標識該應用程式。; 不要為其他安裝程式使用相同的AppId值。; (生成新的GUID,點選 工具|在IDE

32位程式如何訪問64位的

64位OS中,從32位Nunit呼叫32位DLL中的方法執行,如何訪問64位的登錄檔項? (也即關閉登錄檔轉向功能。) 如讀取HKEY_LOCAL_MACHINE/Software/Microsoft子項的value,而非   HKEY_LOCAL_MACHINE/Softw

VS對應的版本號以及存放位置

各個版本的VS對應的版本號 全程 簡稱 版本號 Microsoft Visual Studio 2002 VS2002 VC7.0 Microsoft

C++/MFC 從中 讀取串列埠

從登錄檔中 讀取串列埠 CComboBox m_nPortList;//列表 int InitComm() { m_nPortList.ResetContent(); HKEY hKEY; LPCTSTR data_Set=_T("HARDWARE\\DEVICEM

修改滑鼠右鍵中新建選單性

1、首先按鍵盤win+R 2、輸入regedit,並點選確認按鈕 3、開啟後如圖所示 4、依次找到:HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Explorer\Discardable\PostSetu

Windows桌面設定

變更“回收站”圖示     1、選擇【開始】→【執行】,在彈出的“執行”對話方塊中輸入regedit命令,並按【Enter】鍵執行,以開啟登錄檔編譯器。     2、依次開啟:HKEY_CLASSES_ROOT\CLSID\{645FF040-5081

DLL注入:使用進行DLL注入

實驗原理 (1)在登錄檔編輯器中,將要注入的DLL的路徑字串寫入AppInt_DLLs專案,把LoadAppInit_DLL的專案值設為1。重啟後,指定DLL會注入所有執行的程序。 (2)其實是,user32.dll被載入到程序時,會讀取AppInit_DLLs登錄檔項,若有值,則呼叫Loa

HTML+CSS第四課:表單標籤的使用-製作

知識點:表單標籤、表單元素 表單在網頁中應用比較廣泛,如申請qq賬號、電子郵箱等,使用者需要首先填寫註冊資訊,然後才能提交;通俗講,表單就是一個將使用者資訊組織起來的容器,將使用者填寫的內容放置在表單容器中,當用戶單擊提交按鈕的時候,表單會將資料統一發送給伺服器! 表單的作用

修改實現程式開機自啟動

修改登錄檔實現程式開機自啟動 2017年09月27日 10:55:37 閱讀數:335 登錄檔簡介 何為登錄檔 登錄檔相當於Windows下的一個龐大的層次性資料庫.  基本上有責系統所有的配置資訊 登錄檔是windows作業系統中的一個核心資料庫,其中存放