簡體   English   中英

Ruby-如何從32位紅寶石讀取32位和64位應用程序的注冊表項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM