围绕Windows UAC限制设计的正确方法?

Jim*_*iel 7 installation uac windows-vista windows-7

我发现我写的一个应用程序在Windows Vista/7下无法在任何级别启用UAC时正常工作,因为它将文件写入程序的安装目录,默认为"C:\ Program Files\MyProgram".如果UAC被禁用(或在任何其他版本的Windows上)它可以正常工作 - 我读到UAC默认拒绝应用程序对Program Files目录的写访问.

我的问题是,我应该如何编写我的应用程序,以便可以在没有任何"权利"的情况下使用它.我不希望用户必须使用提升的权限或管理员来运行它.我只是想让它发挥作用.是否存在任何应用程序在UAC下具有写入权限的某些目录,其中可能更好地编写我的文件?它们主要是动态创建/销毁/更新的配置文件.

谢谢你的帮助!

Mic*_*ael 12

应将每用户应用程序特定数据写入AppData文件夹.

您应该将SHGetKnownFolderPath与FOLDERID_LocalAppData 一起使用.

在托管代码中,您应该将System.Environment.GetFolderPath与System.Environment.SpecialFolder.LocalApplicationData一起使用.

  • 如果您使用.NET配置功能(`System.Configuration`命名空间,这些是C#项目中的.settings文件),您的数据将被放置在正确的位置,您将拥有非常优雅的方式来访问和更新它. (2认同)