服务与流程

本文关键字:服务 | 更新日期: 2023-09-27 18:25:44

如果您希望UAC提升的应用程序在windows启动时运行,您需要一个服务。但服务应用程序缺乏特定的功能,例如创建MessageBoxes或执行其他文件。问题是:如何创建一个具有UAC提升功能并能够使用GUI和Process.Start()的启动应用程序?

服务与流程

我也遇到过这个问题。正如IDWMaster提到的,解决方案是使用Windows任务调度程序。不要认为这是一个便宜的选择——我认为这比服务更好。相当多的软件确实使用Windows任务调度程序来运行管理任务。为什么?众所周知,服务无法很好地与桌面交互——例如,如果你在服务中创建了一个全局键盘挂钩,它就不会捕获键。为什么不使用普通的注册表启动键?因为,正如您所知,需要管理权限的程序不能以管理员身份使用注册表启动键自动启动。使用Windows任务计划程序可以解决所有这些问题。

以下是一个优秀的库,它使您能够愉快地使用C#与Windows任务调度程序进行交互:http://taskscheduler.codeplex.com/

您可以使用NSSM创建一个存根服务来启动任何应用程序。

您可以使用任务调度器,在设置新任务时,可以在常规选项卡上选择用户,包括管理员,以及"以最高权限运行"。在触发器选项卡上选择"启动时"。

使用任务调度器来安排任务在用户交互登录时运行。