Favicon

Registry value (Read, write, remove)

Peponi11/13/20243m

NSIS
InstallPackageSetup

1. Introduction

regedit

  • NSIS는 레지스트리 읽기, 쓰기, 제거가 가능하다.
  • 읽기, 쓰기 명령의 경우 대체로 명령어의 사용 방법이 같다.
  • 본문의 내용은 SW 인스톨 또는 언인스톨 상황에서 레지스트리를 조작하는 방법이다.

2. Example

  • 아래 내용에 나오는 RootKey 항목은 다음과 같다.
    • HKCR : HKEY_CLASSES_ROOT
    • HKCU : HKEY_CURRENT_USER
    • HKLM : HKEY_LOCAL_MACHINE
    • HKU : HKEY_USERS
    • HKCC : HKEY_CURRENT_CONFIG

2.1. Read registry

; 레지스트리 읽기 scheme
 
; Command var RootKey "SubKey" "Name"
 
; 레지스트리 읽기 예시
 
ReadRegDWORD $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" "EnableLUA"
  • 아래는 사용 가능한 Command 목록이다.
    • ReadRegDWORD : 32bit DWORD
    • ReadRegStr : string

2.2. Write registry

2.2.1. Write registry without value

; 레지스트리 쓰기 scheme
 
; Command RootKey "SubKey" "KeyName"
 
; 레지스트리 쓰기 예시
 
WriteRegNone HKCU "MySubKey" "Reserved"
  • 값 없이 키만 넣는 경우 CommandWriteRegNone을 써주면 된다.

2.2.2. Write registry with value

; 레지스트리 쓰기 scheme
 
; Command RootKey "SubKey" "KeyName" "Value"
 
; 레지스트리 쓰기 예시
 
WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" "EnableLUA" "00000000"
  • 아래는 사용 가능한 Command 목록이다.
    • WriteRegDWORD : 32bit DWORD
    • WriteRegBin : binary
    • WriteRegStr : string
    • WriteRegExpandStr : REG_EXPAND_SZ

2.3. Remove registry

; 레지스트리 키 제거 scheme
 
; Command RootKey "SubKey"
 
; 레지스트리 키 제거 예시
 
DeleteRegKey HKCU "MySubKey"
  • SubKey 안에 있는 모든 키를 제거한다.
; 레지스트리 값 제거 scheme
 
; Command RootKey "SubKey" "KeyName"
 
; 레지스트리 값 제거 예시
 
DeleteRegValue HKCU "MySubKey" "Reserved"
  • KeyName의 값을 제거한다.

3. 참조 자료