RegRead

값을 레지스트리에서 읽습니다.

New Syntax [v1.1.21+]

RegRead, OutputVar, KeyName , ValueName

매개변수

OutputVar

The name of the output variable in which to store the retrieved value. 변수를 열람할 수 없으면, 변수는 비워지고 ErrorLevel에 1이 설정됩니다.

KeyName

The full name of the registry key.

This must start with HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT, or HKEY_CURRENT_CONFIG (or the abbreviations for each of these, such as HKLM). 원격 레지스트리에 접근하려면, 컴퓨터 이름을 앞에 두고 다음에 쌍점 (또는 [in v1.1.21+]이면, 역사선)을, 다음 예제와 같이 배치하십시오: \\workstation01:HKEY_LOCAL_MACHINE

ValueName

열람될 값의 이름. 생략하면, KeyName의 기본 값이 열람됩니다. 이 값은 RegEdit이 "(Default)"로 보여주는 값입니다. 기본 값이 없다면 (즉, RegEdit "value not set"이라고 보여주면), OutputVar는 비워지고 ErrorLevel은 1이 설정됩니다.

Old Syntax

비추천: 이 구문는 새 스크립트에 사용을 추천하지 않습니다. Use the new syntax instead.

RegRead, OutputVar, RootKey, SubKey , ValueName

매개변수

OutputVar

The name of the output variable in which to store the retrieved value. 변수를 열람할 수 없으면, 변수는 비워지고 ErrorLevel에 1이 설정됩니다.

RootKey

반드시 HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT, 또는 HKEY_CURRENT_CONFIG 중의 하나여야 합니다. (또는 HKLM와 같은 약어). 원격 레지스트리에 접근하려면, 컴퓨터 이름을 앞에 두고 다음에 쌍점 (또는 [in v1.1.21+]이면, 역사선)을, 다음 예제와 같이 배치하십시오: \\workstation01:HKEY_LOCAL_MACHINE

SubKey

서브키의 이름 (예, Software\SomeApplication).

ValueName

열람될 값의 이름. 생략하면, SubKey의 기본 값이 열람됩니다. 이 값은 RegEdit이 "(Default)"로 보여주는 값입니다. 기본 값이 없다면 (즉, RegEdit "value not set"이라고 보여주면), OutputVar는 비워지고 ErrorLevel은 1이 설정됩니다.

에러 처리

[v1.1.04+]: 이 명령어는 실패하면 예외를 던질 수 있습니다. 더 자세한 정보는 실행시간 에러를 참조하십시오.

ErrorLevel은 문제가 있었으면 1이 설정되고 (예를 들어 존재하지 않는 값이나 키) 그렇지 않으면 0이 설정됩니다.

A_LastError는 운영 체제의 GetLastError() 함수의 결과가 설정됩니다.

논평

현재 다음의 값 유형만 지원됩니다: REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ, REG_DWORD, 그리고 REG_BINARY.

REG_DWORD 값은 언제나 양의 십진수로 표현됩니다. If the number was intended to be negative, convert it to a signed 32-bit integer by using OutputVar := OutputVar << 32 >> 32 or similar.

REG_BINARY 키를 읽을 때 그 결과는 십육진 문자로 구성된 문자열입니다. 예를 들어 REG_BINARY 값이 01,a9,ff,77이면 문자열 01A9FF77로 읽힙니다.

REG_MULTI_SZ 키를 읽을 때, 각 구성요소는 라인피드 문자로 끝납니다 (`n). 구성요소가 없다면, OutputVar는 비워집니다. OutputVar로부터 개별적으로 구성요소를 추출하는 방법을 보여주는 예는 FileSelectFile을 참조하십시오.

[v1.1.10.01+]: REG_BINARY values larger than 64K can also be read.

여러 키와 값에 작동하고 열람하려면, 레지스트리-회돌이의 사용을 고려하십시오.

원격 컴퓨터의 레지스트리에 접근하는 법에 관한 자세한 정보는 레지스트리-회돌이에서 논평을 참조하십시오.

32-비트 스크립트에서 64-비트 섹션의 레지스트리로부터 엔트리를 또는 그 반대로 읽고 쓰려면, SetRegView를 사용하십시오.

RegDelete, RegWrite, 레지스트리-회돌이, SetRegView, IniRead

예제

New syntax vs. old syntax.

Despite the different syntax, both examples have the same effect; that is, they read a value from the registry and store it in OutputVar.

RegRead, OutputVar, HKEY_LOCAL_MACHINE\Software\SomeApplication, TestValue
RegRead, OutputVar, HKEY_LOCAL_MACHINE, Software\SomeApplication, TestValue

Retrieves and reports the path of the "Program Files" directory. See EnvGet example #2 for an alternative method.

; 아래의 줄은 OS는 64-비트인데 스크립트는 그렇지 않을 경우,
; 64-비트 프로그램 파일의 경로가 반환된다는 것을 확인합니다.
SetRegView 64  ; [v1.1.08+] 필요

RegRead, OutputVar, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion, ProgramFilesDir
MsgBox, Program files are in: %OutputVar%

레지스트리 값의 유형을 열람합니다 (예, REG_SZ 또는 REG_DWORD).

MsgBox % RegKeyType("HKCU", "Environment", "TEMP")
return

RegKeyType(RootKey, SubKey, ValueName)  ; 이 함수는 지정된 값의 유형을 돌려줍니다.
{
    Loop, %RootKey%, %SubKey%
        if (A_LoopRegName = ValueName)
            return A_LoopRegType
    return "Error"
}