我是Windows系统编程的新手。在我的项目中,我需要阅读已注册的" ProgramFiles" 32 / 64bit进程的位置。
我最终有两个选择:使用SHGetKnownFolderPath
或从系统注册表中读取这些文件夹的值,但我有一些安全问题。有人可以在安全性和可靠性方面比较这两种方法。
答案 0 :(得分:1)
您不会从注册表中未记录的随机位置读取内容,因为这只是Windows 当前存储该数据的实现细节:它可能很容易发生:
正确的方法是使用操作系统提供的记录的接口,Microsoft明确承诺提供兼容性(他们承诺今天有效的公共功能 - 如果根据使用文档 - 明天将继续工作。)
tl; dr :如果您希望在Vista之前保持与Windows版本兼容,请使用SHGetKnownFolderPath
- 或SHGetFolderPath
这是一件好事,因为Windows XP似乎仍然拥有比所有OS X版本更多的市场份额。