2012-02-25 75 views
2

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

+0

我敢打赌,是说要在Win启动启动程序的注册表项。 – 2012-02-25 20:38:16

+0

是的,但在启用UAC时不起作用。这就是我寻找不同方式的原因。 – bytecode77 2012-02-25 22:32:55

回答

2

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

这里有一个很好的书房,使得它的喜悦与Windows任务计划程序在C#接口: http://taskscheduler.codeplex.com/

0

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

1

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

1

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