我正在创建一个我的java程序的Windows可执行EXE文件,其中包含一个在Eclipse中运行的initT的ANT任务,并将其命名为“MyApp.exe”。我需要这个程序在Windows系统上运行而无需管理员身份验证。 到目前为止,这是有效的。它运行正常,没有任何UAC提示。
但是:如果我在我的launch4j ANT任务中将此EXE重命名为“install.exe”,“setup.exe”或“updater.exe”,则会出现UAC图标(右下角覆盖程序图标),我得到了启动程序时UAC会提示(仅限Windows Vista或7)。 如果我在Windows资源管理器中重命名该程序,也会发生这种情况。
似乎文件名中有一些“保留字”导致Windows启动具有提升访问权限(UAC)的程序。
有人可以确认这个问题吗?我真的不能将我的应用程序命名为“install.exe”或“update.exe”吗?
答案 0 :(得分:3)
是的,文件名中有保留字会触发UAC。
@eee将此作为评论:
MSDN:
图标叠加:在Windows Vista中,如果需要可执行文件 要启动的高程,那么可执行文件的图标应该“盖章” 带有盾牌图标来表明这一事实。 ......盾牌图标叠加 也会自动放在被认为可执行的文件上 根据安装程序检测启发式要求提升。对于 例如,名为setup.exe的文件将自动收到屏蔽 即使可执行文件没有嵌入式,也会覆盖图标 申请清单。
答案 1 :(得分:1)
此行为由组策略控制。
如果User Account Control: Detect application installations and prompt for elevation设置为已禁用,则这些文件名将不再是特殊的。
当然,如果您在不受您控制的计算机上命名文件,您仍应远离公认的名称。