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

问题描述:

我将此标记为社区wiki,因为我并不是真的在寻找一个完整的答案。因此,如果您想发布一两件事情来激活UAC提示,而不是全面的列表,请继续。什么操作需要Windows中的UAC提升?

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

具体来说,我想知道如果从注册表中读取将激活它。或写信给它?
你不需要解决上述问题,任何能激活它的东西都是公平的游戏。

对于UAC的任何事情,真的很难,因为你会受到关于如何禁用它的文章的轰炸。我宁愿不让我的应用程序假设UAC被禁用。

+0

你没有打勾的CW框。这也是一个SU问题,而不是SO问题。我会标记一个mod来迁移。 – Pops 2010-06-09 15:53:45

+0

谢谢,我以为我点了它。我觉得这对于SO来说更好,因为我希望我的程序能够避免它,但是SU也可能适合。 – jonescb 2010-06-09 15:56:44

没有“激活”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,就应该添加您的表单上的按钮,将触发高程。

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

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

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

好像文件名中有一些“保留字”会导致窗口启动具有提升权限(UAC)的程序。

+0

有没有人有这方面的来源? – 2017-08-18 14:05:05