c++ - 在哪里放置要与 Windows 用户的桌面设置一起漫游的用户数据文件?

标签 c++ windows winapi windows-shell

我需要将我在已登录交互式用户帐户下运行的进程中的一些数据放入持久存储中。有问题的信息涉及用户的桌面、屏幕保护程序、主题和其他与桌面相关的设置(与我的应用程序相关)。我知道我可以将此数据作为二进制 key 放在 HKEY_CURRENT_USER 中。注册表项,但是这个数据文件可能有点大,我在某处读到最好不要将太多数据放入系统注册表。

所以现在我想我会把它保存在一个二进制文件中。问题是如何找到合适的位置来保存这个文件?我的主要规定是此文件应与登录用户的个人资料一起“旅行”(或漫游)。

最佳答案

通常最好的位置是位于 %APPDATA% 文件夹下的子文件夹(以您的公司或应用程序命名,以便他们使用可以识别它的来源)。你可以这样得到它的位置:

if(SUCCEEDED(SHGetKnownFolderPath ( FOLDERID_RoamingAppData, KF_FLAG_CREATE,
                                    NULL, &wszPath )))
{
    printf("\nSHGetKnownFolderPath FOLDERID_RoamingAppData = %S\n", wszPath);
}

有关 Pat Altimore's blog 的更多信息.

关于c++ - 在哪里放置要与 Windows 用户的桌面设置一起漫游的用户数据文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31016591/

相关文章:

c++ - QFuture<void> 检测异常

c++ - 仅使用(稳定的)第三方库可以使我的代码无法正常工作

c++ - GCC 和 Clang 代码性能的巨大差异

c++ - 将 IPv6 存储为 big endian 的原因是什么

c# - 防止子进程创建可见窗口?

c# - 服务未响应控制功能(错误 2186)

c++ - MFC:RadioButton 在 CWnd 的子类中不起作用(变灰)

c++ - WM_QUERYENDSESSION 处理程序返回值没有预期效果

平板电脑 : Will Eclipse run on windows tablet? 上的 Android 开发

c++ - 拦截 WM_CLOSE 进行清理操作