在Windows启动时启动需要管理员权限的应用

时间:2017-07-18 13:49:12

标签: windows winapi visual-c++ uac

假设app.exe已使用requireAdministrator清单as detailed here构建(由于这里的主题不合适,这确实是需要的)。启动应用程序时,启用Windows UAC时,会出现正常提示:

现在,此应用程序需要在 Windows启动上运行:在“选项”对话框中,有一个“启动时启动”复选框,可以选中或不选中。选中后,它会在注册表中添加一个键

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

启用此“在Windows启动功能上启动”。

问题:在Windows启动时,app.exe在后​​台(自动)启动时,会出现此UAC对话框(请参见之前的屏幕截图),这对用户来说很烦人。< / p>

问题:如何使app.exe可以启动1. requireAdminstrator 2.在Windows启动时默默启动?

干净的方法是什么?很多软件都这样做(索引软件自Windows启动以来都在后台运行,并且没有显示这样的对话框)。

注意:如果可能,我想避免使用TaskScheduler方法:https://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html

1 个答案:

答案 0 :(得分:2)

  1. 索引软件&#34; Everything&#34; 显示了这样的dlalog。
  2. 您正在考虑的其他人只运行具有管理员权限的服务,而不是UI。
  3. 运行服务需要使用该意图构建软件,普通用户应用程序可以在&#34; at&#34;的帮助下使用服务规则启动。服务,您已经知道该怎么做(任务计划程序)。
  4. 您可以将其他服务替换为任务计划程序,冒着通过不必要的重复,浪费资源以及可能出现新的安全漏洞而使用户烦恼的风险。
  5. 留出您的偏好,并使用任务计划程序。 或者删除应用程序的背景部分并编写服务来代替这些部分。

    在授予代码管理员权限时要非常小心。任何错误都可能导致破坏整个安全基础架构。强大的力量带来了巨大的责任。