gpt4 book ai didi

python - 在 Python 中获取所有已安装 Windows 程序的“正确”和可靠方法?

转载 作者:太空狗 更新时间:2023-10-29 18:29:17 25 4
gpt4 key购买 nike

我见过很多在 WinXP+ 上用 python 检索已安装程序的方法。执行此操作的正确最可靠方法是什么?

目前我正在访问 HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall 并从那里读取每个键以获取列表。 (有人告诉我这不是正确的做事方式)我也看到了使用 WMI/Win32com 来执行此操作的示例,但是看到了评论以及 WMI 可能会执行的那些实现在某些机器上被关闭,这不是一个非常可靠的解决方案。

是否有一种既正确又可靠的方法来获取已安装程序的列表?我见过的所有 WMI 示例都不能在这台机器上运行(因此我不愿意使用它,我只运行 WinFLP;它是 XP 的精简版本。)

我似乎还找到了我的搜索结果中出现的 TechNet 文章,该文章针对我的问题提供了类似的答案:http://gallery.technet.microsoft.com/ScriptCenter/en-us/154dcae0-57a1-4c6e-8f9f-b215904485b7请注意,在平台下列出的 Vista/7 非常清楚地表明“不”……将无法工作。所以 WMI 交易似乎行不通......

能够检索安装的路径也是一个好处,因为现在我当前的代码不考虑在另一个驱动器或非默认目录中安装的人。

最佳答案

您提到的 technet 脚本在 Win 7(使用 Python 2.5 32 位)下完美运行,我真的不明白为什么它不应该。

实际上,WMI 方法的真正弱点是它只列出通过 Windows Installer 安装的产品。所以它不会给你完整的列表。许多程序使用不同的安装程序。只需比较 (Select * from Win32_Product) 与控制面板中显示的结果。因此,除非您确定在您的列表中插入您的程序安装了 MSI,否则 WMI 绝对不是一个答案。

所以它可能不是很 pythonic,但据我所知,最好的方法是像您所做的那样使用注册表。这实际上就是控制面板的工作方式,因此至少 Windows 认为这是最可靠的方式。

关于python - 在 Python 中获取所有已安装 Windows 程序的“正确”和可靠方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2077902/

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