Win32::Registry

Win32::Registry class

included modules

class methods

Registry.new(key, subkey, desired = KEY_READ, opt = REG_OPTION_RESERVED)
Registry.new(key, subkey, desired = KEY_READ, opt = REG_OPTION_RESERVED) { |reg| ... }
Registry.open(key, subkey, desired = KEY_READ, opt = REG_OPTION_RESERVED)
Registry.open(key, subkey, desired = KEY_READ, opt = REG_OPTION_RESERVED) { |reg| ... }

レジストリキー key 下のキー subkey を開き, 開いたキーを表す Win32::Registry オブジェクトを返します。 key は親のキーを Win32::Registry オブジェクトで指定します。 親のキーには定義済キー HKEY_* を使用できます (⇒constants)

desired はアクセスマスクです。opt はキーのオプションです。 詳細は MSDN Library を参照してください。

ブロックが与えられると,キーは自動的に閉じられます。

Registry.create(key, subkey, desired = KEY_ALL_ACCESS, opt = REG_OPTION_RESERVED)
Registry.create(key, subkey, desired = KEY_ALL_ACCESS, opt = REG_OPTION_RESERVED) { |reg| ... }

レジストリキー key 下にキー subkey を作成し, 開いたキーを表す Win32::Registry オブジェクトを返します。 key は親のキーを Win32::Registry オブジェクトで指定します。 親のキーには定義済キー HKEY_* を使用できます (⇒constants)

サブキーが既に存在していればキーはただ開かれ,created? メソッドが false を返します。

ブロックが与えられると,キーは自動的に閉じられます。

Registry.expand_environ(str)

str%\w+% という並びを環境変数に置換します。 REG_EXPAND_SZ で用いられます。

詳細は ExpandEnvironmentStrings Win32 API を参照してください。

Registry.type2name(type)

レジストリ値の型を整数から可読文字列に変換します。

Registry.wtime2time(wtime)

64bit の FILETIME を Time オブジェクトに変換します。

Registry.time2wtime(time)

Time オブジェクトまたは Integer オブジェクトを受け取り, 64bit の FILETIME に変換します。

instance methods

open(subkey, desired = KEY_READ, opt = REG_OPTION_RESERVED)

Win32::Registry.open(self, subkey, desired, opt) と同じです。

create(subkey, desired = KEY_ALL_ACCESS, opt = REG_OPTION_RESERVED)

Win32::Registry.create(self, subkey, desired, opt) と同じです。

close

開かれているキーを閉じます。

閉じられた後では,多くのメソッドは例外を発生します。

read(name, *rtype)

レジストリ値 name を読み,[ type, data ] の配列で返します。 name が nil の場合,(標準) レジストリ値が読み込まれます。

type はレジストリ値の型です。(⇒Registry::Constants module) data はレジストリ値のデータで,クラスは以下の通りです:

REG_SZ, REG_EXPAND_SZ

String

REG_MULTI_SZ

String の配列

REG_DWORD, REG_DWORD_BIG_ENDIAN, REG_QWORD

Integer

REG_BINARY

String (バイナリデータを含みます)

オプション引数 rtype が指定されていた場合,レジストリ値の型が 与えられた rtype の配列に存在するかチェックされ,存在しない場合に TypeError が発生します。

self[name, *rtype]

レジストリ値 name を読み,その値を返します。クラスは read に準じます。

レジストリ値の型が REG_EXPAND_SZ だった場合,環境変数が置換されます。 レジストリ値の型が REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ, REG_DWORD, REG_DWORD_BIG_ENDIAN, REG_QWORD 以外だった場合は TypeError が発生します。

オプション引数 rtype の意味は read と同じです。

read_s(name)
read_i(name)
read_bin(name)

型がそれぞれ REG_SZ(read_s), REG_DWORD(read_i), REG_BINARY(read_bin) であるレジストリ値 name を読み,その値を返します。

型がマッチしなかった場合,TypeError が発生します。

read_s_expand(name)

型が REG_SZ または REG_EXPAND_SZ であるレジストリ値 name を読み, その値を返します。

型が REG_EXPAND_SZ だった場合,環境変数が置換された値が返ります。 REG_SZ または REG_EXPAND_SZ 以外だった場合,TypeError が発生します。

write(name, type, data)

レジストリ値 name に型 typedata を書き込みます。 name が nil の場合,(標準) レジストリ値に書き込みます。

type はレジストリ値の型です。(⇒Registry::Constants module) data のクラスは read メソッドに準じていなければなりません。

self[name, wtype = nil] = value

レジストリ値 namevalue を書き込みます。

オプション引数 wtype を指定した場合は,その型で書き込みます。 指定しなかった場合,value のクラスに応じて次の型で書き込みます:

Integer

REG_DWORD

String

REG_SZ

Array

REG_MULTI_SZ

write_s(name, value)
write_i(name, value)
write_bin(name, value)

レジストリ値 namevalue を書き込みます。

レジストリ値の型はそれぞれ REG_SZ(write_s), REG_DWORD(write_i), REG_BINARY(write_bin) です。

each { |name, type, value| ... }
each_value { |name, type, value| ... }

キーが持つレジストリ値を列挙します。

each_key { |subkey, wtime| ... }

キーのサブキーを列挙します。

subkey はサブキーの名前を表す String です。 wtime は最終更新時刻を表す FILETIME (64-bit 整数) です。 (⇒Registry.wtime2time)

delete(name)
delete_value(name)

レジストリ値 name を削除します。 (標準) レジストリ値を削除することはできません。

delete_key(name, recursive = false)

サブキー name とそのキーが持つすべての値を削除します。

recursive が false の場合,そのサブキーはサブキーを持っていてはなりません。 true の場合,キーは再帰的に削除されます。

flush

キーの全てのデータをレジストリファイルに書き込みます。

created?

キーが新しく作成された場合,真を返します。 (⇒Registry.create)

opened?

キーがまだ閉じられていない場合,真を返します。

parent

親のキーを表す Win32::Registry オブジェクトを返します。 定義済キーでは nil を返します。

keyname

Registry.open または Registry.create に指定された subkey の値を返します。

disposition

キーの disposition 値を返します。 (REG_CREATED_NEW_KEY または REG_OPENED_EXISTING_KEY)

name
to_s

キーのフルパスを 'HKEY_CURRENT_USER\SOFTWARE\foo\bar' のような形で返します。

info

キー情報を以下の値の配列で返します:

num_keys

サブキーの個数

max_key_length

サブキー名の最大長

num_values

値の個数

max_value_name_length

値の名前の最大長

max_value_length

値の最大長

descriptor_length

セキュリティ記述子の長さ

wtime

最終更新時刻 (FILETIME)

詳細は RegQueryInfoKey Win32 API を参照してください。

num_keys
max_key_length
num_values
max_value_name_length
max_value_length
descriptor_length
wtime

キー情報の個々の値を返します。

constants

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA

それぞれの定義済キーを表す Win32::Registry オブジェクトです。 詳細は MSDN Library を参照してください。

Registry::Constants module

詳細は MSDN Library を参照してください。

HKEY_*

定義済キー. これらは Integer で,Win32::Registry オブジェクトではありません。

REG_*

レジストリ値の型

KEY_*

セキュリティアクセスマスク

KEY_OPTIONS_*

キーオプション

REG_CREATED_NEW_KEY
REG_OPENED_EXISTING_KEY

キーが新しく作られたか,既存キーが開かれたか。 disposition メソッドも参照してください。



rubyist ML