服务与流程

时间:2012-02-25 20:35:37

标签: c# windows-services uac

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

4 个答案:

答案 0 :(得分:2)

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

这是一个出色的库,可以很高兴与C#中的Windows任务计划程序进行交互: http://taskscheduler.codeplex.com/

答案 1 :(得分:1)

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

答案 2 :(得分:1)

您可以使用任务计划程序,在设置新任务时,您可以在常规选项卡上选择用户,包括管理员,以及“以最高权限运行”。 在“触发”选项卡上,选择“启动时”。

答案 3 :(得分:0)

使用任务计划程序安排您的任务在用户以交互方式登录时运行。