; OpenReg.nsi
; 檢查某注冊(cè)表鍵是否存在的NSIS例子
; 編寫(xiě):zhfi <zhfi1022@tom.com>
;--------------------------------
;定義注冊(cè)表主鍵
!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
;為鍵的句柄創(chuàng)建一個(gè)緩存
System::Call "*(i 0) i .R0"
;將要檢測(cè)的鍵放入內(nèi)存中
Push "SOFTWARE\TENCENT\QQPinYin"
;調(diào)用API進(jìn)行檢查,返回值在$R1中
system::call 'Advapi32::RegOpenKey(i ${HKEY_LOCAL_MACHINE}, t s, i R0) .iR1'
;關(guān)閉該鍵的句柄
system::call 'Advapi32::RegCloseKey(i R0)'
;釋放內(nèi)存
system::free
;返回值:
;0代表鍵存在
;2代表鍵不存在
;其它值表示出錯(cuò)
${If} $R1 == 0
Contact usthis is my email signatureMessagebox mb_ok "Key Exists!"
${ElseIf} $R1 == 2
Messagebox mb_ok "Key doesn't Exists!"
${Else}
Messagebox mb_ok "Error!"
${EndIf}
Pop $R1
Pop $R0
Quit
FunctionEnd