单个实例并在系统托盘中通知

我正在研究应用程序(C#2.0)。 我已经在其中实现了单个实例。 一切都好。 如果我再次运行该应用程序,它会显示消息框说“实例已在运行”。

实际上我不想通过消息框显示消息。

我想使用已经运行的实例的Balloon提示显示此消息(它在系统托盘中有通知图标)。

我怎样才能做到这一点?

提前致谢。

您需要一种进程间通信forms,以向另一个实例发出信号,表明它应该显示消息框。

在这种情况下,你可以比告诉现有实例显示消息更好,而是告诉它恢复它的主窗口(即“unminimise”)。

您可以在app中使用WCF服务。

您的第二个应用程序通过NetPipe连接到它,调用方法并关闭。

您的第一个应用程序接到电话并弹出气球通知

实现单个实例并在第二个实例启动时通知第一个实例的最简单方法已在.Net中实现。 只需看看以下链接:

Hanselman:单实例WinForms

OpenWinForms(选择True Single Instance应用程序)

CodeFluent Runtime是一组免费工具,它提供了一个SingleInstance类来实现单个实例应用程序:

你只需要覆盖WndProc方法来弹出你的通知(Baloon提示)。