winreg
— 윈도우 레지스트리 액세스¶
이 함수들은 윈도우 레지스트리 API를 파이썬에 노출합니다. 프로그래머가 명시적으로 닫는 것을 무시하더라도 핸들이 올바르게 닫히도록 하기 위해, 레지스트리 핸들로 정수를 사용하는 대신 핸들 객체가 사용됩니다.
버전 3.3에서 변경: 이 모듈의 여러 함수는 WindowsError
를 발생시켜왔는데, 이제는 OSError
의 별칭입니다.
함수¶
이 모듈은 다음 함수를 제공합니다:
-
winreg.
CloseKey
(hkey)¶ 이전에 열린 레지스트리 키를 닫습니다. hkey 인자는 이전에 열린 키를 지정합니다.
참고
이 메서드를 사용하여 (또는
hkey.Close()
를 통해) hkey가 닫히지 않으면, hkey 객체가 파이썬에 의해 파괴될 때 닫힙니다.
-
winreg.
ConnectRegistry
(computer_name, key)¶ 다른 컴퓨터에 있는 사전 정의된 레지스트리 핸들에 연결하고, 핸들 객체를 반환합니다.
computer_name은
r"\\computername"
형식의 원격 컴퓨터 이름입니다.None
이면, 로컬 컴퓨터가 사용됩니다.key는 연결할 사전 정의된 핸들입니다.
반환 값은 열린 키의 핸들입니다. 함수가 실패하면,
OSError
예외가 발생합니다.인자
computer_name
,key
로 감사 이벤트winreg.ConnectRegistry
를 발생시킵니다.버전 3.3에서 변경: 위를 참조하십시오.
-
winreg.
CreateKey
(key, sub_key)¶ 지정된 키를 만들거나 열어, 핸들 객체를 반환합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
sub_key는 이 메서드가 열거나 만드는 키의 이름을 지정하는 문자열입니다.
key가 사전 정의된 키 중 하나이면, sub_key는
None
일 수 있습니다. 이 경우, 반환된 핸들은 함수에 전달된 것과 같은 키 핸들입니다.키가 이미 존재하면, 이 함수는 기존 키를 엽니다.
반환 값은 열린 키의 핸들입니다. 함수가 실패하면,
OSError
예외가 발생합니다.인자
key
,sub_key
,access
로 감사 이벤트winreg.CreateKey
를 발생시킵니다.인자
key
로 감사 이벤트winreg.OpenKey/result
를 발생시킵니다.버전 3.3에서 변경: 위를 참조하십시오.
-
winreg.
CreateKeyEx
(key, sub_key, reserved=0, access=KEY_WRITE)¶ 지정된 키를 만들거나 열어, 핸들 객체를 반환합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
sub_key는 이 메서드가 열거나 만드는 키의 이름을 지정하는 문자열입니다.
reserved는 예약된 정수이며, 0이어야 합니다. 기본값은 0입니다.
access는 키에 대한 원하는 보안 액세스를 기술하는 액세스 마스크를 지정하는 정수입니다. 기본값은
KEY_WRITE
입니다. 허용되는 다른 값은 액세스 권한을 참조하십시오.key가 사전 정의된 키 중 하나이면, sub_key는
None
일 수 있습니다. 이 경우, 반환된 핸들은 함수에 전달된 것과 같은 키 핸들입니다.키가 이미 존재하면, 이 함수는 기존 키를 엽니다.
반환 값은 열린 키의 핸들입니다. 함수가 실패하면,
OSError
예외가 발생합니다.인자
key
,sub_key
,access
로 감사 이벤트winreg.CreateKey
를 발생시킵니다.인자
key
로 감사 이벤트winreg.OpenKey/result
를 발생시킵니다.버전 3.2에 추가.
버전 3.3에서 변경: 위를 참조하십시오.
-
winreg.
DeleteKey
(key, sub_key)¶ 지정된 키를 삭제합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
sub_key는 key 매개 변수로 식별된 키의 서브 키여야 하는 문자열입니다. 이 값은
None
이 아니어야 하며, 키에 서브 키가 없을 수 있습니다.이 메서드는 서브 키가 있는 키를 삭제할 수 없습니다.
메서드가 성공하면, 모든 값을 포함하여 전체 키가 제거됩니다. 메서드가 실패하면,
OSError
예외가 발생합니다.인자
key
,sub_key
,access
로 감사 이벤트winreg.DeleteKey
를 발생시킵니다.버전 3.3에서 변경: 위를 참조하십시오.
-
winreg.
DeleteKeyEx
(key, sub_key, access=KEY_WOW64_64KEY, reserved=0)¶ 지정된 키를 삭제합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
sub_key는 key 매개 변수로 식별된 키의 서브 키여야 하는 문자열입니다. 이 값은
None
이 아니어야 하며, 키에 서브 키가 없을 수 있습니다.reserved는 예약된 정수이며, 0이어야 합니다. 기본값은 0입니다.
access is an integer that specifies an access mask that describes the desired security access for the key. Default is
KEY_WOW64_64KEY
. On 32-bit Windows, the WOW64 constants are ignored. See Access Rights for other allowed values.이 메서드는 서브 키가 있는 키를 삭제할 수 없습니다.
메서드가 성공하면, 모든 값을 포함하여 전체 키가 제거됩니다. 메서드가 실패하면,
OSError
예외가 발생합니다.지원되지 않는 윈도우 버전에서는,
NotImplementedError
가 발생합니다.인자
key
,sub_key
,access
로 감사 이벤트winreg.DeleteKey
를 발생시킵니다.버전 3.2에 추가.
버전 3.3에서 변경: 위를 참조하십시오.
-
winreg.
DeleteValue
(key, value)¶ 레지스트리 키에서 명명된 값을 제거합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
value는 제거할 값을 식별하는 문자열입니다.
인자
key
,value
로 감사 이벤트winreg.DeleteValue
를 발생시킵니다.
-
winreg.
EnumKey
(key, index)¶ 열린 레지스트리 키의 서브 키를 열거하고, 문자열을 반환합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
index는 꺼낼 키의 인덱스를 식별하는 정수입니다.
이 함수는 호출될 때마다 하나의 서브 키 이름을 꺼냅니다. 일반적으로 더 이상 사용할 수 있는 값이 없음을 나타내는
OSError
예외가 발생할 때까지 반복적으로 호출됩니다.인자
key
,index
로 감사 이벤트winreg.EnumKey
를 발생시킵니다.버전 3.3에서 변경: 위를 참조하십시오.
-
winreg.
EnumValue
(key, index)¶ 열린 레지스트리 키의 값을 열거하고, 튜플을 반환합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
index는 꺼낼 값의 인덱스를 식별하는 정수입니다.
이 함수는 호출될 때마다 하나의 서브 키 이름을 꺼냅니다. 일반적으로 더는 값이 없음을 표시하는
OSError
예외가 발생할 때까지 반복적으로 호출됩니다.결과는 3개의 항목으로 구성된 튜플입니다:
인덱스
의미
0
값 이름을 식별하는 문자열
1
값 데이터를 담은 객체, 형이 하부 레지스트리 유형에 따라 달라집니다
2
값 데이터의 형을 식별하는 정수 (
SetValueEx()
에 대한 설명서에 있는 표를 참조하십시오)인자
key
,index
로 감사 이벤트winreg.EnumValue
를 발생시킵니다.버전 3.3에서 변경: 위를 참조하십시오.
-
winreg.
ExpandEnvironmentStrings
(str)¶ REG_EXPAND_SZ
와 같은 문자열에서 환경 변수 자리 표시자%NAME%
을 확장합니다:>>> ExpandEnvironmentStrings('%windir%') 'C:\\Windows'
인자
str
로 감사 이벤트winreg.ExpandEnvironmentStrings
를 발생시킵니다.
-
winreg.
FlushKey
(key)¶ 키의 모든 어트리뷰트를 레지스트리에 씁니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
키를 변경하기 위해
FlushKey()
를 호출할 필요는 없습니다. 레지스트리 변경은 지연 플러셔를 사용하여 레지스트리에 의해 디스크로 플러시 됩니다. 레지스트리 변경은 시스템 종료 시에도 디스크로 플러시 됩니다.CloseKey()
와 달리,FlushKey()
메서드는 모든 데이터가 레지스트리에 기록될 때만 반환합니다. 응용 프로그램은 레지스트리 변경이 디스크에 있다는 절대적인 확신이 필요할 때만FlushKey()
를 호출해야 합니다.참고
FlushKey()
호출이 필요한지 모른다면, 아마도 필요하지 않습니다.
-
winreg.
LoadKey
(key, sub_key, file_name)¶ 지정된 키 아래에 서브 키를 만들고 지정된 파일에 있는 등록 정보를 그 서브 키에 저장합니다.
key는
ConnectRegistry()
가 반환한 핸들이거나 상수HKEY_USERS
나HKEY_LOCAL_MACHINE
중 하나입니다.sub_key는 로드할 서브 키를 식별하는 문자열입니다.
file_name은 레지스트리 데이터를 로드할 파일의 이름입니다. 이 파일은
SaveKey()
함수로 만들어졌어야 합니다. FAT(file allocation table) 파일 시스템에서, 파일명은 확장자가 없을 수 있습니다.호출하는 프로세스에
SE_RESTORE_PRIVILEGE
권한(privilege)이 없으면LoadKey()
에 대한 호출이 실패합니다. 권한(privilege)은 허가(permissions)와 다름에 유의하십시오 – 자세한 내용은 RegLoadKey 설명서를 참조하십시오.key가
ConnectRegistry()
가 반환한 핸들이면, file_name에 지정된 경로는 원격 컴퓨터에 상대적입니다.인자
key
,sub_key
,file_name
으로 감사 이벤트winreg.LoadKey
를 발생시킵니다.
-
winreg.
OpenKey
(key, sub_key, reserved=0, access=KEY_READ)¶ -
winreg.
OpenKeyEx
(key, sub_key, reserved=0, access=KEY_READ)¶ 지정된 키를 열고, 핸들 객체를 반환합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
sub_key는 열 서브 키를 식별하는 문자열입니다.
reserved는 예약된 정수이며, 0이어야 합니다. 기본값은 0입니다.
access는 키에 대한 원하는 보안 액세스를 기술하는 액세스 마스크를 지정하는 정수입니다. 기본값은
KEY_READ
입니다. 허용되는 다른 값은 액세스 권한을 참조하십시오.결과는 지정된 키에 대한 새로운 핸들입니다.
함수가 실패하면,
OSError
가 발생합니다.인자
key
,sub_key
,access
로 감사 이벤트winreg.OpenKey
를 발생시킵니다.인자
key
로 감사 이벤트winreg.OpenKey/result
를 발생시킵니다.버전 3.2에서 변경: 명명된 인자 사용을 허용합니다.
버전 3.3에서 변경: 위를 참조하십시오.
-
winreg.
QueryInfoKey
(key)¶ 키에 대한 정보를 튜플로 반환합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
결과는 3개의 항목으로 구성된 튜플입니다:
인덱스
의미
0
이 키가 가진 서브 키의 수를 제공하는 정수.
1
이 키가 가진 값의 수를 제공하는 정수.
2
키가 마지막으로 수정된 때(있다면)를 1601년 1월 1일 이후로 지난 100나노초로 제공하는 정수.
인자
key
로 감사 이벤트winreg.QueryInfoKey
를 발생시킵니다.
-
winreg.
QueryValue
(key, sub_key)¶ 키의 이름이 없는 값을 문자열로 가져옵니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
sub_key는 값이 연관된 서브 키의 이름을 담은 문자열입니다. 이 매개 변수가
None
이거나 비어있으면, 함수는 key로 식별된 키에 대해SetValue()
메서드로 설정된 값을 가져옵니다.레지스트리의 값에는 이름, 형 및 데이터 구성 요소가 있습니다. 이 메서드는
NULL
이름을 가진 키의 첫 번째 값에 대한 데이터를 가져옵니다. 그러나 하부 API 호출은 형을 반환하지 않아서, 가능하다면 항상QueryValueEx()
를 사용하십시오.인자
key
,sub_key
,value_name
으로 감사 이벤트winreg.QueryValue
를 발생시킵니다.
-
winreg.
QueryValueEx
(key, value_name)¶ 열린 레지스트리 키와 연관된 지정된 값 이름의 형과 데이터를 가져옵니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
value_name은 조회할 값을 나타내는 문자열입니다.
결과는 2개의 항목으로 구성된 튜플입니다:
인덱스
의미
0
레지스트리 항목의 값.
1
이 값에 대한 레지스트리 유형을 제공하는 정수 (
SetValueEx()
의 설명서에 있는 표를 참조하십시오)인자
key
,sub_key
,value_name
으로 감사 이벤트winreg.QueryValue
를 발생시킵니다.
-
winreg.
SaveKey
(key, file_name)¶ 지정된 키와 그것의 모든 서브 키를 지정된 파일에 저장합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
file_name은 레지스트리 데이터를 저장할 파일 이름입니다. 이 파일은 이미 존재할 수 없습니다. 이 파일명에 확장자가 포함되어 있으면,
LoadKey()
메서드로 FAT(file allocation table) 파일 시스템에서 사용할 수 없습니다.key가 원격 컴퓨터의 키를 나타내면, file_name이 기술하는 경로는 원격 컴퓨터에 상대적입니다. 이 메서드의 호출자는
SeBackupPrivilege
보안 권한(privilege)을 가지고 있어야 합니다. 권한(privilege)은 허가(permissions)와 다름에 유의하십시오 – 자세한 내용은 사용자 권한과 허가 간의 충돌 설명서를 참조하십시오.이 함수는 security_attributes로
NULL
을 API로 전달합니다.인자
key
,file_name
으로 감사 이벤트winreg.SaveKey
를 발생시킵니다.
-
winreg.
SetValue
(key, sub_key, type, value)¶ 값을 지정된 키와 연관시킵니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
sub_key는 값이 연관된 서브 키의 이름을 지정하는 문자열입니다.
type은 데이터의 형을 지정하는 정수입니다. 현재 이것은
REG_SZ
여야 하는데, 문자열만 지원된다는 뜻입니다. 다른 데이터형을 지원하려면SetValueEx()
함수를 사용하십시오.value는 새 값을 지정하는 문자열입니다.
sub_key 매개 변수로 지정된 키가 존재하지 않으면, SetValue 함수가 이를 만듭니다.
값 길이는 사용 가능한 메모리에 따라 제한됩니다. 긴 값(2048바이트보다 긴)은 구성 레지스트리에 저장된 파일명을 가진 파일로 저장해야 합니다. 이렇게 하면 레지스트리가 효율적으로 수행하는 데 도움을 줍니다.
key 매개 변수로 식별된 키는
KEY_SET_VALUE
액세스로 열렸어야 합니다.인자
key
,sub_key
,type
,value
로 감사 이벤트winreg.SetValue
를 발생시킵니다.
-
winreg.
SetValueEx
(key, value_name, reserved, type, value)¶ 열린 레지스트리 키의 값 필드에 데이터를 저장합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
value_name은 값이 연관된 서브 키의 이름을 지정하는 문자열입니다.
reserved는 무엇이든 가능합니다 – 0이 항상 API로 전달됩니다.
type은 데이터의 형을 지정하는 정수입니다. 사용 가능한 형은 값 형을 참조하십시오.
value는 새 값을 지정하는 문자열입니다.
이 메서드는 지정된 키에 대한 추가 값과 형 정보를 설정할 수도 있습니다. key 매개 변수로 식별된 키는
KEY_SET_VALUE
액세스로 열렸어야 합니다.키를 열려면,
CreateKey()
나OpenKey()
메서드를 사용하십시오.값 길이는 사용 가능한 메모리에 따라 제한됩니다. 긴 값(2048바이트보다 긴)은 구성 레지스트리에 저장된 파일명을 가진 파일로 저장해야 합니다. 이렇게 하면 레지스트리가 효율적으로 수행하는 데 도움을 줍니다.
인자
key
,sub_key
,type
,value
로 감사 이벤트winreg.SetValue
를 발생시킵니다.
-
winreg.
DisableReflectionKey
(key)¶ 64비트 운영 체제에서 실행 중인 32비트 프로세스에 대한 레지스트리 리플렉션(reflection)을 비활성화합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
32비트 운영 체제에서 실행하면 일반적으로
NotImplementedError
가 발생합니다.키가 리플렉션 목록에 없으면, 함수는 성공하지만 아무런 효과가 없습니다. 키에 대한 리플렉션을 비활성화해도 서브 키의 리플렉션에는 영향을 미치지 않습니다.
인자
key
로 감사 이벤트winreg.DisableReflectionKey
를 발생시킵니다.
-
winreg.
EnableReflectionKey
(key)¶ 지정된 비활성화 된 키에 대한 레지스트리 리플렉션(reflection)을 복원합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
32비트 운영 체제에서 실행하면 일반적으로
NotImplementedError
가 발생합니다.키에 대한 리플렉션을 복원해도 서브 키의 리플렉션에 영향을 미치지 않습니다.
인자
key
로 감사 이벤트winreg.EnableReflectionKey
를 발생시킵니다.
-
winreg.
QueryReflectionKey
(key)¶ 지정된 키의 리플렉션(reflection) 상태를 판단합니다.
key는 이미 열린 키이거나, 사전 정의된 HKEY_* 상수 중 하나입니다.
리플렉션이 비활성화되었으면
True
를 반환합니다.32비트 운영 체제에서 실행하면 일반적으로
NotImplementedError
가 발생합니다.인자
key
로 감사 이벤트winreg.QueryReflectionKey
를 발생시킵니다.
상수¶
많은 _winreg
함수에 사용하기 위해 다음 상수가 정의되어 있습니다.
HKEY_* 상수¶
-
winreg.
HKEY_CLASSES_ROOT
¶ 이 키에 종속된 레지스트리 항목은 문서의 형(또는 클래스)과 해당 형과 연관된 속성을 정의합니다. 셸과 COM 응용 프로그램은 이 키에 저장된 정보를 사용합니다.
-
winreg.
HKEY_CURRENT_USER
¶ 이 키에 종속된 레지스트리 항목은 현재 사용자의 환경 설정(preferences)을 정의합니다. 이러한 환경 설정에는 환경 변수 설정, 프로그램 그룹, 색상, 프린터, 네트워크 연결 및 응용 프로그램 환경 설정에 대한 데이터가 포함됩니다.
-
winreg.
HKEY_LOCAL_MACHINE
¶ 이 키에 종속된 레지스트리 항목은 버스 유형, 시스템 메모리 및 설치된 하드웨어와 소프트웨어에 대한 데이터를 포함하는 컴퓨터의 물리적 상태를 정의합니다.
-
winreg.
HKEY_USERS
¶ 이 키에 종속된 레지스트리 항목은 로컬 컴퓨터의 새 사용자를 위한 기본 사용자 구성과 현재 사용자의 사용자 구성을 정의합니다.
-
winreg.
HKEY_PERFORMANCE_DATA
¶ 이 키에 종속된 레지스트리 항목을 사용하면 성능 데이터에 액세스 할 수 있습니다. 데이터는 실제로 레지스트리에 저장되지 않습니다; 레지스트리 함수는 시스템이 소스에서 데이터를 수집하도록 합니다.
-
winreg.
HKEY_CURRENT_CONFIG
¶ 로컬 컴퓨터 시스템의 현재 하드웨어 프로필에 대한 정보가 들어 있습니다.
-
winreg.
HKEY_DYN_DATA
¶ 이 키는 98 이후의 윈도우 버전에서는 사용되지 않습니다.
액세스 권한¶
자세한 내용은 레지스트리 키 보안과 액세스를 참조하십시오.
-
winreg.
KEY_ALL_ACCESS
¶ STANDARD_RIGHTS_REQUIRED,
KEY_QUERY_VALUE
,KEY_SET_VALUE
,KEY_CREATE_SUB_KEY
,KEY_ENUMERATE_SUB_KEYS
,KEY_NOTIFY
및KEY_CREATE_LINK
액세스 권한을 결합합니다.
-
winreg.
KEY_WRITE
¶ STANDARD_RIGHTS_WRITE,
KEY_SET_VALUE
및KEY_CREATE_SUB_KEY
액세스 권한을 결합합니다.
-
winreg.
KEY_READ
¶ STANDARD_RIGHTS_READ,
KEY_QUERY_VALUE
,KEY_ENUMERATE_SUB_KEYS
및KEY_NOTIFY
값을 결합합니다.
-
winreg.
KEY_QUERY_VALUE
¶ 레지스트리 키의 값을 조회하는 데 필요합니다.
-
winreg.
KEY_SET_VALUE
¶ 레지스트리 값을 생성, 삭제 또는 설정하는 데 필요합니다.
-
winreg.
KEY_CREATE_SUB_KEY
¶ 레지스트리 키의 서브 키를 만드는 데 필요합니다.
-
winreg.
KEY_ENUMERATE_SUB_KEYS
¶ 레지스트리 키의 서브 키를 열거하는 데 필요합니다.
-
winreg.
KEY_NOTIFY
¶ 레지스트리 키나 레지스트리 키의 서브 키에 대한 변경 알림을 요청하는 데 필요합니다.
-
winreg.
KEY_CREATE_LINK
¶ 시스템 사용을 위해 예약되어 있습니다.
64비트 특정¶
자세한 내용은 대체 레지스트리 뷰에 액세스하기를 참조하십시오.
-
winreg.
KEY_WOW64_64KEY
¶ Indicates that an application on 64-bit Windows should operate on the 64-bit registry view. On 32-bit Windows, this constant is ignored.
-
winreg.
KEY_WOW64_32KEY
¶ Indicates that an application on 64-bit Windows should operate on the 32-bit registry view. On 32-bit Windows, this constant is ignored.
값 형¶
자세한 내용은 레지스트리 값 형을 참조하십시오.
-
winreg.
REG_BINARY
¶ 모든 형태의 바이너리 데이터.
-
winreg.
REG_DWORD
¶ 32비트 숫자.
-
winreg.
REG_DWORD_BIG_ENDIAN
¶ 빅 엔디안 형식의 32비트 숫자.
-
winreg.
REG_EXPAND_SZ
¶ 환경 변수(
%PATH%
)에 대한 참조를 포함하는 널 종료 문자열.
-
winreg.
REG_LINK
¶ 유니코드 심볼릭 링크.
-
winreg.
REG_MULTI_SZ
¶ 두 개의 널 문자로 끝나는 널 종료 문자열의 시퀀스. (파이썬은 이 종료를 자동으로 처리합니다.)
-
winreg.
REG_NONE
¶ 정의된 값 형이 없습니다.
-
winreg.
REG_QWORD
¶ 64비트 숫자.
버전 3.6에 추가.
-
winreg.
REG_RESOURCE_LIST
¶ 장치 드라이버 리소스 목록.
-
winreg.
REG_FULL_RESOURCE_DESCRIPTOR
¶ 하드웨어 설정.
-
winreg.
REG_RESOURCE_REQUIREMENTS_LIST
¶ 하드웨어 리소스 목록.
-
winreg.
REG_SZ
¶ 널 종료 문자열.
레지스트리 핸들 객체¶
이 객체는 윈도우 HKEY 객체를 감싸서, 객체가 파괴될 때 자동으로 닫습니다. 정리를 보장하기 위해, 객체의 Close()
메서드나 CloseKey()
함수를 호출할 수 있습니다.
이 모듈의 모든 레지스트리 함수는 이러한 객체 중 하나를 반환합니다.
핸들 객체를 받아들이는 이 모듈의 모든 레지스트리 함수는 정수도 받아들이지만, 핸들 객체의 사용을 권장합니다.
핸들 객체는 __bool__()
에 대한 의미를 제공합니다 – 그래서
if handle:
print("Yes")
는 핸들이 현재 유효하면 (닫혔거나 분리되지(detached) 않았으면) Yes
를 인쇄합니다.
객체는 또한 비교 개념을 지원하므로, 핸들 객체가 모두 같은 하부 윈도우 핸들값을 참조하면 참으로 비교됩니다.
핸들 객체는 정수로 변환될 수 있으며 (예를 들어, 내장 int()
함수 사용해서), 이 경우 하부 윈도우 핸들값이 반환됩니다. Detach()
메서드를 사용하여 정수 핸들을 반환하고 핸들 객체에서 윈도우 핸들을 분리할 수도 있습니다.
-
PyHKEY.
Close
()¶ 하부 윈도우 핸들을 닫습니다.
핸들이 이미 닫혀 있으면, 에러가 발생하지 않습니다.
-
PyHKEY.
Detach
()¶ 핸들 객체에서 윈도우 핸들을 분리합니다.
결과는 핸들이 분리되기 전의 핸들 값을 담고 있는 정수입니다. 핸들이 이미 분리되었거나 닫혔으면 0이 반환됩니다.
이 함수를 호출한 후에는, 핸들이 효과적으로 무효가 되지만, 핸들이 닫히지는 않습니다. 하부 Win32 핸들이 핸들 객체의 수명을 넘어 존재해야 할 때 이 함수를 호출합니다.
인자
key
로 감사 이벤트winreg.PyHKEY.Detach
를 발생시킵니다.
-
PyHKEY.
__enter__
()¶ -
PyHKEY.
__exit__
(*exc_info)¶ HKEY 객체는
__enter__()
와__exit__()
를 구현하므로with
문의 컨텍스트 프로토콜을 지원합니다:with OpenKey(HKEY_LOCAL_MACHINE, "foo") as key: ... # work with key
는 제어가
with
블록을 벗어날 때 key를 자동으로 닫습니다.