gpt4 book ai didi

ruby - 用ruby查询windows上已安装的软件

转载 作者:可可西里 更新时间:2023-11-01 11:38:32 26 4
gpt4 key购买 nike

我想查询一台windows机器上所有安装的软件。我找到了另一篇做类似事情的帖子 here .

我稍微修改了代码:

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”是一个,但如何找到其他人呢?有没有更好的方法以编程方式获取此信息?

最佳答案

如果你只是想了解有关软件的完整信息,你可以使用这个:

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",

等等。

关于ruby - 用ruby查询windows上已安装的软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5424911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com