使用 C/C++ 检查 Windows 中的软件安装和安装目录
Check For A Software Installation & Install Directory In Windows with C/C++
我正在使用C++为Windows上的现有应用程序编写补丁。其动机是编辑软件的配置文件,使其按照用户的要求工作。
然而,在打补丁之前检查软件是否已安装是很重要的。此外,如果软件已安装,则知道它安装在哪个目录中很重要,这样我就可以打开该目录中的文件并对其进行编辑。
一种方法是检查文件是否存在于"C:\Program Files…etc."中
现在,当用户在安装过程中修改了该软件的安装目录时,或者如果它是64位的Windows操作系统,则会将其存储在"C:\Program Files(x86)"中,问题就会出现。
所以,在默认安装目录中检查文件的存在几乎没有任何意义。
我听说一些开发人员这样做的另一种方式是通过检查Windows注册表来了解软件是否安装,以及如果存在,它安装在哪个目录中。
此外,我不知道如何使用C++查找注册表。我也不知道要检查哪个注册表项或值才能获得软件的安装路径。
请告诉我,你是否知道以上两种方法的替代方案。如果没有任何好的替代方案,我只想知道如何使用注册表来实现这个目标。
编辑:我正在修补的软件是Dev C++和Code::Blocks编译器。
谢谢!
很难回答这个问题,因为您没有提到更改安装目录的场景。如果你可以更改安装目录,为什么不试试这样的C:\Program Files(x86)\your_folder_name?这样,您的安装目录就不会被其他用户更改。
相关文章:
- 从C++调用 Python 并访问通过 Anaconda 安装的软件包
- 通过自制软件(macOS)安装的clang++:编译错误
- 尝试使用 RTool 在 R4.0 上安装软件包时出现编译错误
- 如何导入使用自制软件安装的 GMP?
- mingw-64 - 安装软件包
- 使用 PYbombs 安装软件包 GNU 无线电时出错
- 安装CMake后,我找不到带有"find_package"的软件包
- 代表软件包安装和系统依赖关系的最佳数据结构
- CMake - 安装问题以制作软件包
- vcpkg 在安装软件包时找不到 cmake.cmd
- OSX 自制软件安装后使用 curlpp 的问题
- 如何在本地商店中安装软件包
- 在Docker构建过程中安装C 软件包
- 使用git安装多个版本的软件
- 通过自制软件安装 freetype,似乎无法正确包含标题
- 我应该使用哪个数据库,需要最小的软件安装到最终用户计算机
- 如何列出/处理C++中安装在 Windows 计算机上的所有软件和相关.exe
- Qt安装程序框架 - 读取下载的软件包版本
- 为什么我在安装软件包中收到这样的错误消息
- 如何在 os x 10.10 中使用自制软件安装 gcc -4.8.4