我有一些程序设置当前存储在HKEY_LOCAL_MACHINE.由于Vista并锁定
用户,一些
用户没有HKEY_LOCAL_MACHINE的权限,并且这些值并不真正属于HKEY_LOCAL_USER(所有
用户必须相同),存储这些值的最佳替代位置是什么?
大部分设置已经存储在数据库中,但有一些程序在连接到数据库之前需要了解.理想情况下,我想要一种实现这种方式,而不需要检查运行的操作系统.
这是一个用Delphi编写的桌面应用程序.
你应该放:
>注册表中的HKEY_CURRENT_USER或CSIDL_APPDATA或CSIDL_LOCAL_APPDATA文件夹中的个人设置(如窗口位置和次要偏好);
>在注册表或应用程序的文件夹中的HKEY_LOCAL_MACHINE下的重要应用程序设置(如您的用户不应修改的固定路径).在安装时设置管理员权限;
> CSIDL_COMMON_APPDATA文件夹中的共享数据(所有用户应读写的数据,就像简单数据库).
使用SHGetFolderPath找到CSIDL_*
文件夹的位置.
根据您的需要,您可能希望一次实现所有三个选项.没有什么不对的.