Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 推荐的应用程序解决方案允许应用程序具有可由同一台计算机的多个用户共享的设置文件_Windows_Visual Studio 2010_Visual C++_Windows 7_System Administration - Fatal编程技术网

Windows 推荐的应用程序解决方案允许应用程序具有可由同一台计算机的多个用户共享的设置文件

Windows 推荐的应用程序解决方案允许应用程序具有可由同一台计算机的多个用户共享的设置文件,windows,visual-studio-2010,visual-c++,windows-7,system-administration,Windows,Visual Studio 2010,Visual C++,Windows 7,System Administration,我目前正在从事一个项目,在这个项目中,我的应用程序生成一些设置文件(在programfiles(x86)文件夹中),供其他应用程序进一步使用。现在,我希望我的软件的非管理用户也能使用这个功能,在programfiles(x86)文件夹中生成设置文件。我使用C++来创建我的应用程序。 这样,我们在C++中有一个功能,甚至非管理员可以在程序文件(x86)文件夹中创建一个设置文件。 微软如何处理这种情况 有人能给我一个解决这个问题的好方法吗 提前感谢。每台机器的配置数据应存储在FOLDERID\u P

我目前正在从事一个项目,在这个项目中,我的应用程序生成一些设置文件(在programfiles(x86)文件夹中),供其他应用程序进一步使用。现在,我希望我的软件的非管理用户也能使用这个功能,在programfiles(x86)文件夹中生成设置文件。我使用C++来创建我的应用程序。

这样,我们在C++中有一个功能,甚至非管理员可以在程序文件(x86)文件夹中创建一个设置文件。 微软如何处理这种情况

有人能给我一个解决这个问题的好方法吗


提前感谢。

每台机器的配置数据应存储在
FOLDERID\u ProgramData
引用位置的子文件夹中

位置可能会根据您使用的操作系统版本而变化。它也可以本地化(文件夹名称因系统语言而异)。系统管理员也可以对其进行更改

因此,不要将文件夹名称硬编码到应用程序中,这一点非常重要。相反,您使用。调用,传递其中一个值

解释在各种场景中使用哪些已知文件夹

PWSTR path = nullptr;
HRESULT hr = SHGetKnownFolderPath(FOLDERID_ProgramData, 0, NULL, &path);
if (FAILED(hr)) {
    // error handling
}

// use the path

// when you are done, you must free the memory yourself:
CoTaskMemFree(path);

谢谢。这就是我需要的。