@@ -32,7 +32,7 @@ def __init__(
3232 self ._handler = None
3333 self ._root : Optional [HKEYType ] = None
3434
35- def get_handler (
35+ def _get_handler (
3636 self ,
3737 key : str ,
3838 access : int ,
@@ -50,12 +50,15 @@ def get_handler(
5050 )
5151 return key_handle
5252
53+ def close (self ) -> None :
54+ if self ._client :
55+ self ._client .Close ()
56+
5357 def __enter__ (self ) -> "WinRegistry" :
5458 return self
5559
5660 def __exit__ (self , exc_type , exc_val , exc_tb ): # type: ignore
57- if self ._client :
58- self ._client .Close ()
61+ self .close ()
5962 if exc_val :
6063 raise
6164
@@ -65,7 +68,7 @@ def read_entry(
6568 name : str ,
6669 key_wow64_32key : bool = False ,
6770 ) -> RegEntry :
68- handle = self .get_handler (reg_key , KEY_READ , key_wow64_32key )
71+ handle = self ._get_handler (reg_key , KEY_READ , key_wow64_32key )
6972 raw_value , raw_type = QueryValueEx (handle , name )
7073 return RegEntry (
7174 reg_key = reg_key ,
@@ -85,7 +88,7 @@ def write_entry(
8588 ) -> None :
8689 if isinstance (reg_type , int ):
8790 reg_type = WinregType (reg_type )
88- handle = self .get_handler (reg_key , KEY_SET_VALUE , key_wow64_32key )
91+ handle = self ._get_handler (reg_key , KEY_SET_VALUE , key_wow64_32key )
8992 SetValueEx (handle , name , 0 , reg_type .value , value )
9093
9194 def delete_entry (
@@ -94,15 +97,15 @@ def delete_entry(
9497 name : str ,
9598 key_wow64_32key : bool = False ,
9699 ) -> None :
97- handle = self .get_handler (key , KEY_SET_VALUE , key_wow64_32key )
100+ handle = self ._get_handler (key , KEY_SET_VALUE , key_wow64_32key )
98101 DeleteValue (handle , name )
99102
100103 def read_key (
101104 self ,
102105 name : str ,
103106 key_wow64_32key : bool = False ,
104107 ) -> RegKey :
105- handle = self .get_handler (name , KEY_READ , key_wow64_32key )
108+ handle = self ._get_handler (name , KEY_READ , key_wow64_32key )
106109 keys_num , values_num , modify = QueryInfoKey (handle )
107110 modify_at = datetime (1601 , 1 , 1 ) + timedelta (microseconds = modify / 10 )
108111 keys = list ()
@@ -138,7 +141,7 @@ def create_key(
138141 while i < len (sub_keys ) and not handler :
139142 try :
140143 current = "\\ " .join (sub_keys [: len (sub_keys ) - i ])
141- handler = self .get_handler (current , KEY_WRITE , key_wow64_32key )
144+ handler = self ._get_handler (current , KEY_WRITE , key_wow64_32key )
142145 except FileNotFoundError :
143146 i += 1
144147 before_index = len (sub_keys ) - i
@@ -156,5 +159,5 @@ def delete_key(
156159 key_wow64_32key : bool = False ,
157160 ) -> None :
158161 parental , key_name = name .rsplit (sep = "\\ " , maxsplit = 1 )
159- handle = self .get_handler (parental , KEY_WRITE , key_wow64_32key )
162+ handle = self ._get_handler (parental , KEY_WRITE , key_wow64_32key )
160163 DeleteKey (handle , key_name )
0 commit comments