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



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

所以现在我想我会把它保存在一个二进制文件中。问题是如何找到保存此文件的适当位置?我的主要规定是,该文件应该与登录用户的配置文件一起"旅行"(或roam)。

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

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

Pat Altimore的博客上有更多信息。

最新更新