|
|
1
11
如果您是指“控制面板”中“添加/删除程序”中显示的已安装应用程序列表,则可以在注册表项中找到该列表:
more info about how the registry tree is structured can be found here . 你需要使用 winreg API 在python中从注册表中读取值。 |
|
|
2
10
退房 Win32_Product WMI(Windows Management Instrumentation)类。 Here's a tutorial 在python中使用wmi。 |
|
|
3
8
控制面板使用win32 com api,这是正式的方法(请参阅google groups,win32)
|
|
|
4
6
Microsoft脚本存储库有一个用于列出所有已安装软件的脚本。
|
|
|
5
4
我见过的最好的基于注册表的实现是ChrisWright(Chris128)在 http://www.vbforums.com/showthread.php?t=598355 . 它使用多个注册表项,比当前发布的任何答案都要复杂得多。它似乎产生了与添加/删除程序应用程序相同的结果,并且像ARP应用程序一样,它也提供了包含更新的选项。 尽管它是在vb.net中实现的,但它应该很容易转换为其他.NET语言,如C或Ironpython。我认为,如果您愿意的话,首先转换为Ironpython可以使移植到常规的python变得相当容易,但是我只是自己将其转换为c,然后稍微清理一下代码。 只有一个小错误需要指出:getUserInstallerKeyPrograms()不会将用户程序的版本添加到列表中,即使它会将其提取出来。不过,这很容易解决。 |
|
|
6
3
C.NET代码,用于获取在xp和win7中使用wmi的已安装软件列表(wmi是win7中的唯一方法)
|
|
7
0
我知道这个问题是旧的,OP提到XP,也提到了Python,C或C++,但是我发现网上关于这个主题的很多信息是不完整的或不正确的。后者的一个例子是建议使用wmi——特别是
值得一提的是,下面是我认为是迄今为止最完整的示例,尽管在C语言中(我是根据框架4.6.1编译的,但较低版本也可以工作。)它列出了32位和64位安装的程序;它处理了它使用的注册表项,并在一秒钟内运行,至少在缓存启动之后。如果您可以提供改进,请建议他们而不是直接投反对票,我将更新代码。
一件事
是
仍然缺少一些更新。例如,当我在我的Windows10系统上运行它并将它与控制面板程序和功能安装的更新进行比较时,我注意到它没有显示
对于匿名方法,我没有任何好的理由,这只是我当时的想法——一种方法内方法的解决方案。
[叹息]然后我看到了@polytekpatrick的答案。我是怎么错过的?英雄联盟 |
|
0___________ · 我可以在整个程序生命周期内保持句柄打开吗 1 年前 |