c++ - 使用 C++ 查找特定软件是否安装在 Windows 中的最合适方法是什么?

标签 c++ windows-7

我正在编写一个软件,它在给定的时刻需要查找给定的软件是否已经安装(通过其名称)——所以安装程序在安装它的软件时会做同样的事情,有时会提醒该软件已安装在 PC 中。

问题是我不知道哪种方法比较好。现在软件只查看默认文件夹,如果找不到 .exe,他会要求用户指出他安装软件的位置,否则就认为它已卸载。

但我希望它自己做事;它应该能够发现是否在没有用户输入的情况下安装了软件,我不确定哪种方法是执行此操作的有效方法。

我现在找到的唯一方法是做与 Windows 的“添加/删除程序”相同的事情:查看许多注册表项并尝试找到它,但我认为这会花费太多不必要的时间,因为它看起来在很多地方都只能找到一个软件。

那么在 C++ 中是否还有其他成本更低的选择?

谢谢,

莫吉尔

最佳答案

这完全取决于你想问的东西是如何安装的。如果它始终是从 MSI 安装的,您可以阅读 MSI 并学习调用 API 和/或阅读注册表以查看其唯一 ID 是否存在。

如果用'unzip'安装,没有简洁的解决办法。

关于c++ - 使用 C++ 查找特定软件是否安装在 Windows 中的最合适方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018632/

相关文章:

c++ - 使用 cout 时发出奇怪的哔哔声

c++ - 用 .exe 打包库

c++ - 为什么我的代码在 Windows 7 上不会出现段错误?

windows-7 - Windows 7 中任何地方的命令提示符( native 功能)

c++ - 从重写方法返回派生类,声明为返回基拷贝

c++ - 有人可以帮助我使用基于数组的二进制搜索树 C++ 吗?

c++ - Directx网格顶点问题

c# - 如何确定网络接口(interface)是否连接到互联网(即计算机在线)

python - <这时候出乎意料

ruby - 是否有将 R 集成到 ruby​​ 中的库?