один экземпляр и уведомить в системном трее - PullRequest
3 голосов
/ 10 августа 2009

Я работаю над приложением (C # 2.0). Я реализовал один экземпляр в нем. Все отлично. Если я снова запускаю приложение, оно отображает окно с сообщением «экземпляр уже запущен».

На самом деле я не хочу показывать сообщение через окно сообщения.

Я хочу показать это сообщение, используя подсказку Balloon уже запущенного экземпляра (на панели задач есть значок уведомления).

Как мне этого добиться?

Заранее спасибо.

Ответы [ 4 ]

4 голосов
/ 10 августа 2009

Вам нужна форма межпроцессного взаимодействия , чтобы сообщить другому экземпляру, что он должен отобразить окно сообщения.

В этом случае вы могли бы пойти лучше, чем попросить существующий экземпляр отобразить сообщение, и вместо этого сказать ему восстановить его главное окно (т. Е. "Unminimise").

0 голосов
/ 15 сентября 2014

CodeFluent Runtime , который является бесплатным набором инструментов, предоставляет класс SingleInstance для реализации одного приложения:

Вам просто нужно переопределить метод WndProc , чтобы всплыть уведомление (подсказка Baloon).

0 голосов
/ 30 декабря 2009

Самый простой способ реализовать один экземпляр и сообщить первому, если запущен второй, уже реализован в .Net. Просто взгляните на следующие ссылки:

Хансельман: WinForms для одного экземпляра

OpenWinForms (выберите приложение True Single Instance)

0 голосов
/ 10 августа 2009

Вы можете использовать службу WCF внутри своего приложения.

Ваше второе приложение подключается к нему через NetPipe, вызывает метод и закрывается.

Ваше первое приложение получает вызов и всплывающее уведомление о воздушном шаре

...