我把这个标记为社区维基,因为我并不是在寻找一个完整的答案。 所以如果你想发布一个或两个东西,将激活UAC提示,而不是一个全面的列表,然后继续。
Windows中的哪些操作将激活UAC? 我想尽可能避免它,因为我的应用程序不需要pipe理员权限。 而且我相信很多其他人都想避免它。
具体来说,我想知道如果从registry中读取将激活它。 或写信给它?
你不需要解决上面的问题,任何能激活它的东西都是公平的游戏。
Google对于UAC的任何事情都很难,因为你会受到关于如何禁用它的文章的轰炸。 而且我宁愿没有我的应用程序使得UAC被禁用。
没有什么“激活”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
一个文件,那么你应该在你的表单上添加一个按钮来触发海拔。
然后,您需要启动程序的副本(升级),执行该操作,然后关闭。
我创建了一个launch4j安装程序(一个用于java程序的exe包装)并将其命名为“MyApp.exe”。 它不需要任何管理员身份验证。 它运行正常,没有任何UAC提示。
但是:如果我将此安装程序重命名为“install.exe”或“setup.exe”,则会显示UAC图标,并在启动安装程序时收到UAC提示。
似乎在文件名中有一些“保留字”,导致窗口启动具有提升权限(UAC)的程序。