2017-08-31 67 views
0

我想用Windows服务打开一个气球提示。 我可以在Windows窗体中执行此操作。是否有可能使用Windows服务?气球工具提示使用Windows服务C#

+1

https://stackoverflow.com/questions/4237225/allow-service-to-interact-with-desktop-in-windows – Blorgbeard

+0

[允许服务与Windows桌面交互](https:// stackoverflow .com/questions/4237225/allow-service-to-interact-with-desktop-in-windows) – jHilscher

+0

在上面的文章中,它解释了如何与Windows进行交互。但是如何通过服务交互来打开气球工具提示?对不起,我是一个新手,C# –

回答

1

我之前已经实现了这个服务,使用命名管道。基本上你创建了两个应用程序。

  • 用作命名管道服务器的Windows服务项目
  • 用托盘图标,气球和命名管道客户

Windows服务推动对客户端的消息

  • 一个WinForms应用程序连接,可能是运行winforms应用程序的系统上的多个用户。

    的WinForms应用程序监听在管的消息。一旦消息进入,您可以使气球弹出。

    这是一个很酷的测试项目:https://www.codeproject.com/Tips/492231/Csharp-Async-Named-Pipes

    编码愉快!

  • +0

    感谢您的回答,但有没有一种方式没有另外的程序并行运行? –

    +0

    不,没有。一个Windows服务并不意味着有一个用户界面。大多数服务在服务帐户下运行,而不在运行explorer.exe的用户帐户下运行,因此是桌面用户界面。为什么在一个项目中使用它很重要? –

    +0

    尽量保持它尽可能简单。我会尝试这种方法。感谢分享这篇文章 ! –

    0

    不能直接使用。一个Windows服务不会在用户的会话中运行,它运行在它自己的特殊“服务会话”中。在该会话中显示的工具提示不会显示在用户桌面上。

    来解决这个问题,通常的方法是有一个与用户的登录开始,不在任务栏上可见一个第二计划。该程序使用某种形式的IPC(例如WCF)与服务交谈,然后该服务可以告诉帮助程序根据需要显示通知。

    +0

    我的想法,但有没有并行运行的其他程序的方法吗? –

    +0

    据我所知,我不知道任何。 –

    +0

    谢谢@ Scott Chamberlain –