【问题标题】:What actions will require UAC elevation in Windows?哪些操作需要在 Windows 中提升 UAC?
【发布时间】:2011-03-01 18:06:15
【问题描述】:

我将其标记为社区 wiki,因为我并不是真的在寻找一个完整的答案。因此,如果您想发布一两件会激活 UAC 提示的内容而不是一个完整的列表,那么请继续。

Windows 中的哪些操作会激活 UAC?我想尽可能避免它,因为我的应用程序不需要管理员权限。而且我敢肯定很多其他人都想避免它。

具体来说,我想知道从注册表中读取是否会激活它。还是写信给它?
你不需要解决上面的问题,只要能激活它就是公平的游戏。

很难在 Google 上搜索任何有关 UAC 的信息,因为您会收到大量关于如何禁用它的文章。而且我宁愿不让我的应用程序假设 UAC 已禁用。

【问题讨论】:

  • 您没有勾选 CW 框。此外,这更像是一个 SU 问题而不是 SO 问题。我会标记要迁移的模组。
  • 谢谢,我以为我点击了它。我觉得这对 SO 更好,因为我希望我的程序避免它,但 SU 也可能是合适的。

标签: windows windows-7 windows-vista uac


【解决方案1】:

没有什么能“激活”UAC。

如果您的应用程序无法在 Windows XP 下作为标准用户运行,它将无法在 Windows Vista 或 Windows 7 下作为标准用户运行。

您真正要问的是:标准用户在 Windows 下不能执行哪些操作?

标准用户不能做的事情是众所周知的(自 Windows 2000 以来它们一直是相同的)。主要有:

  • 修改HKEY_LOCAL_MACHINE中的任何内容
  • 修改Windows目录中的任何内容
  • 修改Program Files文件夹中的任何内容

如果您尝试执行其中任何一项,他们都会失败:

  • Windows 2000
  • Windows XP
  • Windows Vista
  • Windows 7

没有人应该以管理员身份运行日常计算机。如果您的应用程序在 Windows XP 中做了任何这些坏事,它就会失败。用户必须:

  • 登录(或快速用户切换)到管理员
  • 执行管理任务
  • 切换回他们的真实账户

UAC 是一种方便的机制,可让您轻松临时切换到管理员。您所做的任何事情都不会“触发”它;你必须让它发生。

如果您知道您的代码需要修改C:\Program Files\My App\Data 中的文件,那么您应该在表单上添加一个按钮来触发提升。

然后,您需要启动程序的(提升的)副本,执行此操作,然后关闭。

【讨论】:

    【解决方案2】:

    我创建了一个 launch4j 安装程序(Java 程序的 exe 包装器)并将其命名为“MyApp.exe”。它不需要任何管理员身份验证。它运行良好,没有任何 UAC 提示。

    但是:如果我将此安装程序重命名为“install.exe”或“setup.exe”,则会出现 UAC 图标,并且在启动安装程序时会出现 UAC 提示。

    似乎文件名中有一些“保留字”会导致 Windows 以提升的权限 (UAC) 启动程序。

    【讨论】:

    • 有人有这方面的资料吗?
    猜你喜欢
    • 2010-12-06
    • 1970-01-01
    • 2010-10-29
    • 2011-11-18
    • 1970-01-01
    • 2011-02-11
    • 2011-05-21
    • 2011-03-17
    相关资源
    最近更新 更多