从.net服务打开窗口/对话框

本文关键字:对话框 开窗口 net 服务 | 更新日期: 2023-09-27 17:54:57

我创建了一个c# . net windows服务。此服务正在使用一些配置文件。现在我们有另一个由应用程序加载的dll组件,我们从那里创建配置文件。我想从我的直接服务中打开这个dll组件。以下是我想在最终服务exe中提供的选项,它将作为服务以及配置器。

假设exe名称为SampleServ.exe,则选项应为:

  1. 不带任何参数,它应该作为service启动
  2. 使用SampleServ.exe -config(它应该启动configurator而不是service)

我正在努力。

public static void Main(string[] args)
{
    if (args.Length == 0)
    {
        ServiceBase[] ServicesToRun;
        ServicesToRun = new ServiceBase[] 
        { 
           new Service1() 
        };
        ServiceBase.Run(ServicesToRun);
    }
    else
    {
        MainPage wnd = new MainPage();
        wnd.ShowDialog();
    }
}

这里MainPage是派生的窗口,我不能添加命名空间系统。窗口,因为服务限制。

请告诉我是否有其他可行的方法。


在项目参考中添加一些更多的组件后,我能够做到这一点。我添加了像"PresentationCore","presentationframework","System.Xaml"这样的参考。我只是想知道如果添加这样的组件的任何含义。任何想法?

从.net服务打开窗口/对话框

嗨,这是你需要的一个完整的例子,它还包括一个安装/卸载功能

http://blogs.microsoft.co.il/blogs/kim/archive/2009/01/04/self-installing-windows-service.aspx

使用Environment.GetCommandLineArgs获取参数(索引0是程序的名称,但是要小心)。如果参数1不是"-config",则作为服务启动,否则显示配置表单。