Windows 有没有办法避免程序文件中自动运行应用程序的UAC?

Windows 有没有办法避免程序文件中自动运行应用程序的UAC?,windows,installation,uac,installshield,Windows,Installation,Uac,Installshield,首先,我想强调的是,我并没有试图做任何“肮脏”或“黑客”的事情,也没有试图对这里的用户隐瞒任何事情 在安装期间(使用InstallShield LE),Windows UAC会提示我的应用程序用户允许它在管理员模式下运行;如果用户接受它-安装继续(标准行为),用户可以再次选中将此程序添加到自动运行列表的选项(通过将注册表项添加到HKLM/。/Run)。一切正常。但每次Windows重启后,当这个应用程序启动时,UAC就会启动并请求用户权限。问题是,如何避免它,因为它有点烦人(但我的应用程序需要管

首先,我想强调的是,我并没有试图做任何“肮脏”或“黑客”的事情,也没有试图对这里的用户隐瞒任何事情

在安装期间(使用InstallShield LE),Windows UAC会提示我的应用程序用户允许它在管理员模式下运行;如果用户接受它-安装继续(标准行为),用户可以再次选中将此程序添加到自动运行列表的选项(通过将注册表项添加到HKLM/。/Run)。一切正常。但每次Windows重启后,当这个应用程序启动时,UAC就会启动并请求用户权限。问题是,如何避免它,因为它有点烦人(但我的应用程序需要管理员权限才能运行)

我的意思是用户已经在安装时授予了这样的权限,所以我看不出为什么每次启动时都需要提示?此外,我相信大多数杀毒软件等也需要提升权限才能运行,但UAC不会在Windows启动时提示

感谢您提供的任何建议、信息、意见或解决方案

  • 您的应用程序真的需要启动吗?或者,当用户使用它执行操作时,它是否需要提升访问权限?如果可以的话,将稍后的管理任务放到一个单独的exe中,允许主exe在没有提升的情况下启动-稍后执行工作进程时,它将根据需要执行UAC

  • 正如您所注意到的,在安装时,您已经提升了安装程序。如果你想在以后的运行中自动运行提升的代码,这就是安装服务的关键点——你提到的所有其他应用都是这样做的


  • 我没有这样做,但我发现这篇文章说使用微软的“”

    兼容性管理员允许您创建 允许您运行某些应用程序的兼容性修复程序 没有伴随的UAC

    • 以管理员身份运行兼容性管理员
    • 选择一个新的数据库模板
    • 单击工具栏上的
      Fix
      按钮。当您看到“创建新应用程序修复程序向导”时。。。输入应用程序的详细信息
    • 选择一个兼容级别
    • 选择
      RunAsInvoker
      作为修复程序
    看来最后一个

    选择RunAsInvoker选项将允许应用程序启动 无需UAC提示

    如果调用者是admin,您应该做您想做的事情,我认为您可以在启动时使用调度程序来做这件事:


    正如您所见,它以兼容模式运行您的应用程序,这可能是您可以接受的,也可能是您无法接受的。

    对于在交互式会话中启动的进程,您无法绕过UAC。您可以使用以特权用户身份运行的服务,但最好是找到一种不需要管理员权限即可执行任何操作的方法。

    程序不可能在没有提示的情况下运行。您要做的是将应用程序中需要提升的部分考虑到作为系统运行的windows服务中。然后,您的AutoStart应用程序可以对该服务进行远程调用,以深入了解用户不提升就无法完成的活动。

    这只允许您以标准用户身份运行应用程序。但问题是如何使用提升的权限运行,而不查看UAC对话框。问题是这个答案并不能满足问题的要求。额外的解释并不能改变这一点。服务或计划任务不会调用UAC提示符。病毒扫描程序就是这样绕过提示的。否则,完全不清楚您的程序为什么会这样做。通常需要向程序添加清单以请求“RequireAdministrator”。谷歌搜索很好。你的exe的名字很重要。避免“安装”、“安装”、“升级”。