它们有什么用处,如果它们无法改变其默认值呢?修辞问题。如何避免应用程序范围设置为只读?
首先,绕过设置系统并直接写入应用程序范围设置文件(下一段中的安全问题)的最佳方法是什么?的XmlReader/XmlWriter的?
IIRC,如果应用程序试图写入其Program Files文件夹,Windows Vista和7会做一些魔术来防止这种情况发生。我想我需要调用UAC来升级,并且我必须在应用程序的“选项”窗口的“确定”按钮上放置那个花哨的盾牌图标,等等。链接到一个快速的方法?
或者,您可能会告诉我,我正在尝试做的事很愚蠢,我应该将我可更改的应用程序范围设置存储在其他位置。
但这正是我想要的!用户A修改某些内容,而用户B不必重复该修改。 – CannibalSmith
更奇怪的是,更多的人不需要这个功能。当然很多应用程序都具有程序员想要构建友好UI的全局设置。 –
@Ben - 如果你确实想将设置直接保存到全局,你可以使用[ConfigurationManager](http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx)类。 exe.config文件。很明显,如果该文件位于c:\ programfiles \中,您的用户将需要相应的管理权限。首先像这样打开配置:var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);然后像这样添加新的设置:config.AppSettings.Settings.Add(“key”,“value”); (或者你可以创建自定义配置部分)不要忘记打电话保存。 –