如果无论如何都无法更改它们的默认值,它们有什么用?反问。
首先,绕过设置系统并直接写入应用程序范围设置文件的最佳方法是什么(下一段中的安全问题)? XmlReader/XmlWriter?
IIRC,如果应用程序试图写入其 Program Files 文件夹,Windows Vista 和 7 会采取一些措施来防止这种情况发生。我想我需要调用 UAC 来提升,我必须把那个花哨的盾牌图标放在我应用程序的选项窗口的确定按钮上等等。链接到快速操作方法?
或者,您可能会告诉我,我正在尝试做的事情很愚蠢,我应该将我的可变应用程序范围设置完全存储在其他地方。
最佳答案
如果您将它们更改为“用户”设置,则可以在代码中进行更改,并且当您调用 Save() 时,它们将保存到当前用户本地设置文件夹中的 user.config 文件中。
显然,这意味着它们对于每个用户来说都可能不同。通常,不会在代码中修改对每个用户都相同的全局应用程序设置,因为一个用户所做的更改会影响其他所有人(因此应用程序设置是只读的)。
如果您不希望它们在用户范围内,请查看 ConfigurationManager类(class)。这将允许您手动读取和写入 .config 文件。请记住,尽管 c:\program files\文件夹受到保护,普通用户无法访问它(这将导致 UAC 提示或在 vista/win7 中失败)。仔细考虑您将如何处理它,并记住对 app.config 的任何更改都会影响所有用户。
Windows 中没有任何位置可以保证所有用户都具有写入权限。
关于c# - 如何绕过应用程序范围设置为只读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1687321/