我正在使用C++为Windows上的一个现有应用程序写一个补丁。其目的是编辑软件的配置文件,使其按照用户的要求工作。
但是,在打补丁之前检查软件是否已安装很重要。此外,如果安装了该软件,知道它安装在哪个目录中很重要,这样我就可以打开该目录中的文件并对其进行编辑。
一种方法是检查文件是否存在于"C:\Program Files... etc“中。
现在,当用户在安装过程中修改了该软件的安装目录,或者如果它是64位的Windows OS,而不是将其存储在"C:\Program Files (x86)“中,问题就来了。
因此,检查默认安装目录中是否存在文件几乎没有任何意义。
我听说一些开发人员这样做的另一种方式是检查Windows注册表,以了解软件是否已安装,以及如果存在,则安装在哪个目录中。
此外,我不知道如何使用C++查看注册表。我也不知道要检查哪个注册表项或值来获取软件的安装路径。
请告诉我有没有你所知道的上述两种方法的替代方法。如果没有任何好的替代方案,我只想知道如何使用注册表来实现这个目标。
编辑:我正在打补丁的软件是Dev和C++::Blocks编译器。
谢谢!
发布于 2013-08-14 23:33:21
很难回答这个问题,因为您没有提到更改安装目录的场景。如果您能够更改安装目录,为什么不尝试这样的C:\Program Files (x86)\your_folder_name呢?这样,您的安装目录不会被其他用户更改。
https://stackoverflow.com/questions/18235519
复制相似问题