Запрос установленного программного обеспечения на окнах с ruby - PullRequest
1 голос
/ 24 марта 2011

Я хочу запросить все установленное программное обеспечение на компьютере с Windows.Я нашел другой пост, который делал что-то подобное здесь .

Я немного изменил код:

require 'win32/registry'

Win32::Registry::HKEY_LOCAL_MACHINE.open('Software\Microsoft\Windows\CurrentVersion\Uninstall') do |reg|
    reg.each_key do |key1,key2|
        k = reg.open(key1)

        puts k["DisplayName"]    rescue "?"
        puts k["DisplayVersion"] rescue "?"
        puts k["Publisher"]      rescue "?"
        puts k["URLInfoAbout"]   rescue "?"
        puts
    end
end

Это дает мне некоторую информацию, но я бы хотелполучить другую информацию о программном обеспечении.Например, было бы здорово иметь дату установки, информацию о лицензии и т. Д.

Я очень новичок в ruby.Как я узнаю, что это за индексы или ключи в k?Очевидно, «DisplayName» одно, но как мне найти других?Есть ли лучший способ получить эту информацию программно?

1 Ответ

3 голосов
/ 25 марта 2011

Если вы просто хотите узнать полную информацию о программном обеспечении, вы можете использовать это:

require 'win32/registry'
require 'pp' # for pretty print

Win32::Registry::HKEY_LOCAL_MACHINE.open('Software\Microsoft\Windows\CurrentVersion\Uninstall') do |reg|
    reg.each_key do |key1,key2|
        k = reg.open(key1)
        pp k.inject([]) {|info, data| info << data}
    end
end

И вы получите что-то вроде этого:

 ["UninstallString",
  1,
  "\"C:\\WINDOWS\\$NtUninstallKB2393802$\\spuninst\\spuninst.exe\""],
 ["TSAware", 4, 1],
 ["NoModify", 4, 1],
 ["InstallDate", 1, "20110313"],
 ["Publisher", 1, "Microsoft Corporation"],
 ["NoRepair", 4, 1],
 ["HelpLink", 1, "http://support.microsoft.com?kbid=2393802"],
 ["URLInfoAbout", 1, "http://support.microsoft.com"],
 ["DisplayVersion", 1, "1"],
 ["ParentKeyName", 1, "OperatingSystem"],
 ["ParentDisplayName",

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...