繁体   English   中英

从Windows服务启动Windows窗体应用程序

[英]Start windows form application from Windows service

我已经创建了Windows服务,我想在其中启动Windows窗体应用程序。 在该应用程序中,我将窗体边框样式设置为FixedToolWindow ,即使最小化它也不会显示在任务栏中(我将ShowInTaskbar设置为false)。 所以我没有得到如何启动该应用程序的信息。 当我使用一个简单的Windows窗体应用程序时,它将启动并在TaskManager中显示过程,但没有显示GUI。

我已经在OnStart()方法中编写了以下代码来做到这一点。 请提出更好的解决方案。 为何不显示其他简单应用程序UI?

p.StartInfo.FileName = @"Exe path";
p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
p.StartInfo.CreateNoWindow = true;
p.Start();

其中p是System.Diagnostics.Process类的对象。

Windows服务不会与登录用户在同一会话中运行,这不是这样做的方法。 您通常在后台运行长时间的服务,然后执行以下任一操作:

  1. 用户手动启动可以配置服务的应用,或者

  2. 拥有一个已经运行(托盘)的应用程序,该应用程序可能在用户登录时启动,该服务可能会唤醒该信号。

对于第二种情况,您可以使用EventWaitHandle如果你只需要发送一个简单的“唤醒”电话,或使用任何进程间通信选项,你想为更复杂的数据交换。 后者通常直接或通过WCF,Remoting或其他一些方便的技术基于套接字或命名管道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM