Windows服务应该在启动时加载表单

时间:2013-04-05 06:44:47

标签: c# login windows-services windows-authentication

如何在Windows服务的OnStart事件中加载“登录表单”?!我知道Windows服务与UI不兼容。但我需要这样做而不使用Windows启动.. 可能吗?如何? 非常感谢。

2 个答案:

答案 0 :(得分:5)

  

如何在Windows服务的OnStart事件中加载“登录表单”?

您无法执行此操作,因为Windows服务无法显示用户界面。

  

我知道Windows服务与UI不兼容。

喔。你已经知道了。好。

  

但我需要在不使用Windows启动的情况下执行此操作..

这不会改变它不受支持且不起作用的事实。

  

有可能吗?怎么样?

不,因为:

  

Windows服务与UI不兼容。


那我该怎么做!?!

这里真正的答案是你的设计是错误的。

如果您需要有人登录您的应用程序,则不应创建服务。

只需制作标准Windows应用程序(例如,使用Windows窗体或WPF)并将其设置为在任何用户登录计算机时自动启动。这可以通过向All Users“Startup”文件夹添加快捷方式轻松完成。

然后,当您的应用运行时,您可以显示您需要的任何UI,而不受服务的限制。

答案 1 :(得分:2)

如果您需要将UI交互与服务相结合,您应该编写两个程序 - 该服务公开某种API,以及一个客户端程序与该API交互(使用您想要选择的任何IPC机制)

请记住,多个用户可以登录到同一台计算机,因此您应该编写所有内容以应对同时运行的多个客户端程序实例。