class Win32::Registry
win32/registry ist eine Registrierungszugriffsbibliothek für die Win32-Plattform. Sie verwendet einen Importer, um Win32 Registry-APIs aufzurufen.
Beispiel
Win32::Registry::HKEY_CURRENT_USER.open('SOFTWARE\foo') do |reg|
value = reg['foo'] # read a value
value = reg['foo', Win32::Registry::REG_SZ] # read a value with type
type, value = reg.read('foo') # read a value
reg['foo'] = 'bar' # write a value
reg['foo', Win32::Registry::REG_SZ] = 'bar' # write a value with type
reg.write('foo', Win32::Registry::REG_SZ, 'bar') # write a value
reg.each_value { |name, type, data| ... } # Enumerate values
reg.each_key { |key, wtime| ... } # Enumerate subkeys
reg.delete_value(name) # Delete a value
reg.delete_key(name) # Delete a subkey
reg.delete_key(name, true) # Delete a subkey recursively
end
Vordefinierte Schlüssel
-
HKEY_CLASSES_ROOT -
HKEY_CURRENT_USER -
HKEY_LOCAL_MACHINE -
HKEY_PERFORMANCE_DATA -
HKEY_CURRENT_CONFIG -
HKEY_DYN_DATAWin32::Registry-Objekt, dessen Schlüssel ein vordefinierter Schlüssel ist.
Für Details siehe den Artikel.
Werttypen
-
REG_NONE -
REG_SZ -
REG_EXPAND_SZ -
REG_BINARY -
REG_DWORD -
REG_DWORD_BIG_ENDIAN -
REG_LINK -
REG_MULTI_SZ -
REG_RESOURCE_LIST -
REG_FULL_RESOURCE_DESCRIPTOR -
REG_RESOURCE_REQUIREMENTS_LIST -
REG_QWORD
Für Details siehe den Artikel.
Öffentliche Klassenmethoden
Source
# File ext/win32/lib/win32/registry.rb, line 468 def self.create(hkey, subkey, desired = KEY_ALL_ACCESS, opt = REG_OPTION_RESERVED) newkey, disp = API.CreateKey(hkey.instance_variable_get(:@hkey), subkey, opt, desired) obj = new(newkey, hkey, subkey, disp) if block_given? begin yield obj ensure obj.close end else obj end end
Erstellt oder öffnet den Registrierungsschlüssel subkey unter key. Sie können die vordefinierten Schlüssel HKEY_* verwenden. desired und opt sind die Zugriffsmaske und die Schlüsseloption.
Wenn subkey bereits existiert, wird der Schlüssel geöffnet und die Methode Registry#created? gibt false zurück.
Wenn ein Block gegeben wird, wird der Schlüssel reg übergeben und nach Verlassen des Blocks automatisch geschlossen.
Source
# File ext/win32/lib/win32/registry.rb, line 381 def self.expand_environ(str) str.gsub(Regexp.compile("%([^%]+)%".encode(str.encoding))) { v = $1.encode(LOCALE) (ENV[v] || ENV[v.upcase])&.encode(str.encoding) || $& } end
Ersetzt %-umschlossene Teilstrings in str durch den Umgebungswert dessen, was sich zwischen den %-Zeichen befindet. Diese Methode wird für REG_EXPAND_SZ verwendet.
Für Details siehe die Win32-API ExpandEnvironmentStrings.
Source
# File ext/win32/lib/win32/registry.rb, line 438 def self.open(hkey, subkey, desired = KEY_READ, opt = REG_OPTION_RESERVED) subkey = subkey.chomp('\\') newkey = API.OpenKey(hkey.instance_variable_get(:@hkey), subkey, opt, desired) obj = new(newkey, hkey, subkey, REG_OPENED_EXISTING_KEY) if block_given? begin yield obj ensure obj.close end else obj end end
Öffnet den Registrierungsschlüssel subkey unter key. key ist ein Win32::Registry-Objekt des übergeordneten Schlüssels. Sie können die vordefinierten Schlüssel HKEY_* verwenden. desired und opt sind die Zugriffsmaske und die Schlüsseloption.
Für Details siehe die MSDN.
Wenn ein Block gegeben wird, wird der Schlüssel reg übergeben und nach Verlassen des Blocks automatisch geschlossen.
Source
# File ext/win32/lib/win32/registry.rb, line 415 def self.time2wtime(time) time.to_i * 10000000 + 116444736000000000 end
Source
# File ext/win32/lib/win32/registry.rb, line 401 def self.type2name(type) @@type2name[type] || type.to_s end
Konvertiert den Registrierungstyps-Wert type in einen lesbaren String.
Source
# File ext/win32/lib/win32/registry.rb, line 408 def self.wtime2time(wtime) Time.at((wtime - 116444736000000000) / 10000000) end
Konvertiert einen 64-Bit FILETIME-Integer wtime in ein Time-Objekt.