我是一名新的Windows程序员,我不确定应该在哪里存储用户可配置的应用程序设置.我理解需要为用户提供用户友好的方式来更改应用程序设置,例如编辑| 设置表单或类似.但是,在用户点击该表单上的"应用"按钮后,我应该在哪里存储值?
在Windows注册表中存储设置与将其存储在本地INI文件或配置文件或类似文件中的优缺点是什么?
我需要为我的应用程序存储日志文件和配置文件.存放它们的最佳位置在哪里?
现在,我只是使用当前目录,最终将它们放在我的程序所在的Program Files目录中.
用户可能会定期访问日志文件,因此%APPDATA%似乎有点难以实现.
目录下%USERPROFILE%\My Documents最好吗?从2000年开始,它需要适用于所有版本的Windows.
我有一些当前存储在HKEY_LOCAL_MACHINE中的程序设置.由于Vista和锁定用户,一些用户没有HKEY_LOCAL_MACHINE的权限,这些值也不属于HKEY_LOCAL_USER(对于所有用户必须是相同的),存储这些值的最佳替代位置是什么?
大多数设置已存储在数据库中,但在连接到数据库之前,程序需要了解一些设置.理想情况下,我想要一种实现这一点的方法,而无需检查正在运行的操作系统.
这是用Delphi编写的桌面应用程序.
我们的win32应用程序(用C++编写)已经存在了10多年,并且还没有根据它们保存文件的位置遵循"良好实践".应用程序默认安装在"C:\ AppName"文件夹中,并将应用程序生成的文件,配置文件,下载的文件和保存的用户文档保存在该文件夹的子文件夹中.
据推测,现在默认安装在"c:\ Program Files\AppName"下是"最佳实践".但是,如果我们这样做,我们应该在哪里保留其余的文件?从Vista开始,写入程序文件文件夹是有问题的,似乎有一百万个其他地方可以放置不同的文件,我很困惑.
什么地方有什么参考?
编辑:扩展到目前为止人们提出的问题:
我熟悉SHGetFolderPath函数,但是你可以从中获得很多很多选项,而且我找不到一个资源说"这正是这些选项的用途,以及你何时使用可能想用它".
到目前为止,我们已经完成了"所有文件,包括保存的用户文件,在一个文件夹下"的东西,并且它运行良好 - 但是当人们想要在Program Files文件夹下安装应用程序时.出于某种原因,围绕Vista的虚拟化对我们的应用程序不起作用; 如果我们无论如何都会做出改变,我们也可以努力以"正确"的方式做事,因为我们不想在12个月内再次改变它.
进一步问题:
我们的应用程序包含一些"示例"文档,我们不时更新.如果我们每隔几个月覆盖一次,是否适合将它们安装到我的文档中?或者我的文件被认为对用户来说是完全安全的?
如果我们无法将它们安装到我的文档中,我们应该在哪里放置它们以便用户可以轻松地看到它们?