我发现如果 UAC 在任何级别启用,我编写的应用程序在 Windows Vista/7 下无法正常工作,因为它将文件写入程序的安装目录,默认为“C:\Program Files\MyProgram”。如果 UAC 被禁用(或在任何其他版本的 Windows 上),它会正常工作 - 我读到 UAC 默认拒绝应用程序对 Program Files 目录的写访问。
我的问题是,我应该如何编写我的应用程序,以便它可以在根本不需要任何“权限”的情况下使用。我不希望用户必须以提升的权限或以管理员身份运行它。我只是想让它工作。是否有任何应用程序在 UAC 下具有写入权限的某些目录,在那里写入我的文件可能更好?它们主要是动态创建/销毁/更新的配置文件。
谢谢你的帮助!
最佳答案
每个用户的应用程序特定数据应写入 AppData 文件夹中。
您应该使用 SHGetKnownFolderPath使用 FOLDERID_LocalAppData。
在托管代码中,您应该使用 System.Environment.GetFolderPath与 System.Environment.SpecialFolder.LocalApplicationData。
关于windows-7 - 围绕 Windows UAC 限制进行设计的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1358422/