我将此标记为社区维基,因为我并不是在寻找一个完整的答案。因此,如果您想发布一两个会激活UAC提示而不是全面列表的内容,那么请继续。
Windows中的哪些操作会激活UAC?我想尽可能地避免它,因为我的应用程序不需要管理员权限。我相信很多其他人都想避免它。
具体来说,我想知道从注册表中读取是否会激活它。或者写信给它? 你不需要解决上面的问题,任何激活它的东西都是合理的游戏。
对于UAC而言,谷歌真的很难,因为你会受到关于如何禁用它的文章的轰炸。而且我宁愿不让我的应用程序做出假设UAC被禁用。
答案 0 :(得分:4)
没有什么能够“激活”UAC。
如果您的应用程序无法在Windows XP下以标准用户身份运行,则无法在Windows Vista或Windows 7下以标准用户身份运行。
您真正要问的是: 标准用户在Windows下无法执行哪些操作?
标准用户不能做的事情是众所周知的(自Windows 2000以来它们一直都是这样)。主要是:
HKEY_LOCAL_MACHINE
Windows
目录Program Files
文件夹如果您尝试执行其中任何一项操作,则会失败:
没有人应该以日常计算机使用的管理员身份运行。如果您的应用程序在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)。