0

我可以告诉你非管理员不允许写信的地方:

Environment::GetFolderPath(Environment::SpecialFolder::ApplicationData) + "\\Config.ini";
Environment::GetFolderPath(Environment::SpecialFolder::CommonApplicationData) + "\\monitorService\\Config.ini";
Environment::GetFolderPath(Environment::SpecialFolder::ProgramFiles) + "\\monitorService\\Config.ini";

我寄予厚望,Environment::SpecialFolder::CommonApplicationData但遗憾的是,普通受限用户也无法使用。我需要一个通用的、易于出错、知道和查找的目录,我可以从中加载配置数据并将其保存到其中。我想我可以支持每个用户的配置文件,但我宁愿让事情尽可能简单。

我是否可以让我的安装程序留出注册表或文件系统的某些区域以供普遍访问?我使用 Innosetup 和 .NET 代码进行安装。我注意到(IRC)firefox 为命名用户默认用户填充了“应用程序数据”文件夹,所以我猜这是另一种可能性。由于服务需要配置数据,因此将几个 shortstringints 存储在注册表之外的任何地方可能会太麻烦。

4

1 回答 1

0

由于没有人回答,我不妨在实施时提出我的解决方案。

受限用户只有 HKCU 的写入权限。这与使用文件系统相同——一些用户特定的分支是可写的。必须在用户登录的正确时间检查对全局配置文件的写访问权,然后如果它抛出,则委托给用户本地配置是很麻烦的,但这是必须做的。为了更容易进行碎片整理并且对性能的影响较小,我将尝试在 HKCU 之前使用 FS。

于 2011-10-24T08:40:04.947 回答