首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >绕过Windows UAC限制进行设计的正确方法?

绕过Windows UAC限制进行设计的正确方法?
EN

Stack Overflow用户
提问于 2009-08-31 17:21:17
回答 2查看 2.1K关注 0票数 7

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

我的问题是,我应该如何编写我的应用程序,以便它可以在没有任何所需的“权限”的情况下使用。我不希望用户必须以提升的权限或管理员身份运行它。我只想让它起作用。在UAC下,是否有应用程序有权写入某些目录,在这些目录中写入我的文件可能会更好?它们大多是动态创建/销毁/更新的配置文件。

感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-31 17:23:31

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

您应该在FOLDERID_LocalAppData中使用SHGetKnownFolderPath

在托管代码中,应对System.Environment.SpecialFolder.LocalApplicationData.使用System.Environment.GetFolderPath

票数 12
EN

Stack Overflow用户

发布于 2009-08-31 17:28:13

是的,有特定的地点。请考虑将this msdn article作为第一个参考。它提到了位置:

  • CSIDL_APPDATA
  • CSIDL_LOCAL_APPDATA
  • CSIDL_COMMON_APPDATA

在本机代码中,SHGetKnownFolderPath方法应该很有用。

在托管代码中,您可以使用Environment.GetFolderPath()。如果您处于特定的应用程序框架中,例如windows窗体,则可以通过直接属性(例如Application.LocalUserAppDataPath (这是我个人最喜欢的技术)更轻松地进行访问)。框架路径将在它返回以区分的路径上包含特定于应用程序的限定符(例如)您的应用程序的不同版本。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1358422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档