什么操作需要Windows中的UAC提升?

时间:2010-06-09 15:51:56

标签: windows windows-7 windows-vista uac

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

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

具体来说,我想知道从注册表中读取是否会激活它。或者写信给它? 你不需要解决上面的问题,任何激活它的东西都是合理的游戏。

对于UAC而言,谷歌真的很难,因为你会受到关于如何禁用它的文章的轰炸。而且我宁愿不让我的应用程序做出假设UAC被禁用。

2 个答案:

答案 0 :(得分:4)

没有什么能够“激活”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中的文件,那么您应该在表单上添加一个触发提升的按钮。

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

答案 1 :(得分:0)

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

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

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