原文nsis:檢查某登錄檔鍵是否存在
;定義登錄檔主鍵
!define hkey_classes_root 0x80000000
!define hkey_current_user 0x80000001
!define hkey_local_machine 0x80000002
!define hkey_users 0x80000003
outfile openreg.exe
xpstyle on
!include logiclib.nsh
;--------------------------------
name openreg
section nil
sectionend
function .oninit
;為鍵的控制代碼建立乙個快取
system::call "*(i 0) i .r0"
;將要檢測的鍵放入記憶體中
push "software\tencent\qqpinyin"
;呼叫api進行檢查,返回值在$r1中
system::call 'advapi32::regopenkey(i $, t s, i r0) .ir1'
;關閉該鍵的控制代碼
system::call 'advapi32::regclosekey(i r0)'
;釋放記憶體
system::free
;返回值:
;0代表鍵存在
;2代表鍵不存在
;其它值表示出錯
$ $r1 == 0
messagebox mb_ok "key exists!"
$ $r1 == 2
messagebox mb_ok "key doesn't exists!"
$messagebox mb_ok "error!"
$pop $r1
pop $r0
quit
functionend
NSIS訪問X64登錄檔
nsis生成的安裝程式是32位程式,在64位系統上訪問登錄檔會重定向到wow6432node.使用 setregview 64 將允許安裝程式在 x64 中訪問登錄檔鍵值。它將影響deleteregkey,deleteregvalue,enumregkey,enumregvalue,readregd...
NSIS記住安裝目錄(通過讀寫登錄檔)
前人留下的打包 對nsis一知半解的情況下改了改,記住使用者上次安裝路徑。define product uninst root key hklm define dir programfiles demo 預設路徑 判斷 為instdir賦值 function page.1 readregstr r0...
C 操作登錄檔例項(包括判斷路徑是否存在)
在應用程式安裝時,常常需要利用登錄檔來登記應用程式的名稱 執行路徑 使用者對應用程式的配置資訊等 許多應用程式在執行時也常常需要訪問登錄檔。net 框架結構在 microsoft.win32 名字空間內提供了兩個類用於登錄檔操作 registry 和registrykey 這兩個類都是密封類,不允許...