【问题标题】:List installed program in windows列出windows中已安装的程序
【发布时间】:2010-11-27 10:42:04
【问题描述】:

我想获取 Windows 中唯一已安装程序的列表,例如 Windows 中的“添加/删除程序”。但是 HKLM\Software\Microsoft\Windows\Current Version\Uninstall 的数据, 有一些重复。如何过滤它们?

谢谢

【问题讨论】:

  • 我说对了吗?如果您不喜欢编辑,请回滚。

标签: c++ windows


【解决方案1】:

推荐的 Win32 方法是使用 Microsoft Installer API。你要的函数是MsiEnumProductsEx

【讨论】:

  • 它适用于 所有 安装的应用程序还是仅适用于通过 MSI 安装的应用程序?
  • 它将显示出现在添加/删除程序中的应用程序。
  • 是否可以使用windows 2000/XP/2003/Vista/7/2008左右的平台
  • 在 Windows 7 中添加/删除程序安装日期与卸载注册表值不匹配的程序
【解决方案2】:

我在使用 Win32_Product 表的“GetWmiObject”查询时遇到的问题是它希望安装的程序使用标准的 uuid 键名,我发现并非所有供应商都这样命名他们的注册表键。

从 powershell 我这样做是为了扫描所有键,无论名称如何

$reg = Get-ChildItem "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" -Recurse
foreach ($a in $reg) {
    if ($a.GetValue("Publisher") -eq 'Publisher_Name') {
      Write-Output $a.GetValue("DisplayVersion")
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多