I just found out about registry.rb in the Win32 distribution of Ruby (it’s
for accessing the Windows registry).
However, when I tried the sample script:
require ‘win32/registry.rb’
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|
puts "name is: #{name}, type is: #{type}, data is: #{data}"
} # Enumerate values
end
I got:
c:/programs/ruby/lib/ruby/1.8/win32/registry.rb:340:in `initialize’:
uninitializ
ed constant Win32::Registry::Error::Errno (NameError)
from c:/programs/ruby/lib/ruby/1.8/win32/registry.rb:340:in
`initialize’
from c:/programs/ruby/lib/ruby/1.8/win32/registry.rb:395:in
`exception’
from c:/programs/ruby/lib/ruby/1.8/win32/registry.rb:395:in
`raise’
from c:/programs/ruby/lib/ruby/1.8/win32/registry.rb:395:in
`check’
from c:/programs/ruby/lib/ruby/1.8/win32/registry.rb:417:in
`OpenKey’
from c:/programs/ruby/lib/ruby/1.8/win32/registry.rb:525:in
`open’
from c:/programs/ruby/lib/ruby/1.8/win32/registry.rb:605:in
`open’
from registry.rb:2
Any ideas?
Phil