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

问题描述:

我正在开发应用程序(C#2.0)。我已经在其中实施了单个实例。一切安好。 如果我再次运行该应用程序,它会显示messagebox说“实例已在运行”。单个实例并在系统托盘中通知

其实我不想通过messagebox显示消息。

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

我该如何做到这一点?

在此先感谢。

您需要一种形式为interprocess communication的信号来向另一个实例表明它应该显示消息框。

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

+0

我建议您打开一个套接字并发送唤醒信号给应用程序。您需要的所有东西都内置到.NET中(查看TcpListener/TcpClient类)。 – 2009-08-10 16:35:17

你可以在你的应用程序中使用WCF服务。

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

你的第一个应用程序接收呼叫,并弹出,在气球通知

实行单一实例,并告知如果第二启动已经在.net实现的第一个最简单的方法。只要看一看到以下链接:

Hanselman: Single Instance WinForms

OpenWinForms (select True Single Instance application)

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

你刚才已经以覆盖WndProc方法来弹出您的通知(Baloon提示)。