Hi Robert and Michal, Thanks for your responses. 1. I was hung up the the fact that HKEY_CURRENT_USER appears to be a constant to me. Heretofore, I never heard of a constant having methods. # CODE START require 'win32/registry' require 'show' show %@Win32::Registry::HKEY_CURRENT_USER.class@ # CODE END # OUTPUT START Win32::Registry::HKEY_CURRENT_USER.class => Win32::Registry # OUTPUT END So I now see that this HKEY_CURRENT_USER is an instance of the Win32::Registry class. OK, this is step 1 of my education. I've visited the http://www.ruby-doc.org/ for the Win32:Registry module as well as the Microsoft site for the Registry API. These two things, plus the fact that I handled the Registry programatically with VC++/ MFC a decade earlier, means I should be fine now. I am curious about one thing: I haven't been able to see how the above construct really works, i.e. where's the code for it? Maybe I didn't read the RDoc carefully enough. From Robert's inspection statement, it looks like the expression returns an instance of of Win32::Registry with an instance variable @key set to HKEY_CURRENT_USER. Again, thanks for your responses. I did look at the totality of instance methods, though the Ruby-doc stuff is really what I needed to look at. Best wishes, Richard P.S. The Microsoft site is http://msdn2.microsoft.com/en-us/library/ms724875.aspx. On Jun 6, 5:09 am, Robert Klemme <shortcut... / googlemail.com> wrote: > On 06.06.2007 07:13, Richard wrote: > > > > > Hi, > > > I'd like to be able to search a named hive for keys whose names match > > a given regular expression. > > > I found, for example: > > > require 'win32/registry' > > Win32::Registry::HKEY_CURRENT_USER.open('SOFTWARE\\AdwareAlert\ > > \AdwareAlert\\RegInfo') do |reg| > > puts reg['OrderNo'] > > end > > > which let me specify a specific key in the HKCU hive and print the > > value of one of its entries. > > > I don't actually know why the foregoing is even syntactically correct > > becausehttp://www.ruby-doc.org/stdlib/libdoc/Win32API/rdoc/classes/Win32/Reg... > > says HKEY_CURRENT_USER is a constant in Win32::Registry. > > Why do you think this should disallow the syntax above? It's perfectly > valid Ruby code. And that does not have to do anything with the fact > that HKEY_CURRENT_USER is a constant. > > > Therefore, > > it seems to me that HKEY_CURRENT_USER can't have a method "open". > > The documentation is probably a bit misleading: > > 11:06:11 [~]: ruby -r win32/registry -e > 'k=Win32::Registry::HKEY_CURRENT_USER; p k, k.class, > k.instance_variables.map {|v| "#{v}=#{k.instan > ce_variable_get v}"}' > #<Win32::Registry key="HKEY_CURRENT_USER"> > Win32::Registry > ["@keyname=HKEY_CURRENT_USER", "@parent=", "@hkey=2147483649", > "@disposition=2"] > > Does that fix your irritation? :-) > > Btw, if you do this you'll see some methods that might actually do what > you need (find for example). > > ruby -r win32/registry -e 'puts Win32::Registry.instance_methods.sort' > > Kind regards > > robert