[英]Ruby - how to read registry keys for 32 bit and 64 bit applications from 32 bit ruby
我在應用程序中使用ruby 32位。 我正在使用“ win32 / registry”讀取注冊表項。
當我使用
reg = Win32::Registry::HKEY_LOCAL_MACHINE.open('SOFTWARE\app_path')
reg_typ, reg_val = reg.read('somekey')
默認情況下,它讀入路徑
HKEY_LOCAL_MACHINE \\ SOFTWARE \\ WOW6432Node \\ app_path
。
現在一些應用程序是64位的,我想檢查
HKEY_LOCAL_MACHINE \\ SOFTWARE \\ app_path
H。 但是,默認情況下,它始終嘗試在“ WOW6432Node”下查找
關於我所缺少的任何建議,以及如何從ruby中讀取32位和64位應用程序的注冊表?
顯然, win32/registry
沒有定義用於執行此操作的KEY_WOW64_{32,64}KEY
標志 。 但是由於Ruby允許重新打開類和模塊,因此您可以輕松地自己添加它們:
module Win32::Registry::Constants
KEY_WOW64_64KEY = 0x0100
KEY_WOW64_32KEY = 0x0200
end
讀取64位密鑰:
reg = Win32::Registry::HKEY_LOCAL_MACHINE.open('SOFTWARE\app_path',
Win32::Registry::KEY_READ | Win32::Registry::KEY_WOW64_64KEY)
讀取32位密鑰:
reg = Win32::Registry::HKEY_LOCAL_MACHINE.open('SOFTWARE\app_path',
Win32::Registry::KEY_READ | Win32::Registry::KEY_WOW64_32KEY)
您可以在Ruby的錯誤跟蹤器上打開該功能的請求(或者,如果您願意,我也可以為您完成)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.