Вопрос

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

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

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

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

Заранее благодарю.

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

Тот самый Среда выполнения CodeFluent который является бесплатным набором инструментов, обеспечивает Одиночный экземпляр класс для реализации приложения с одним экземпляром:

Вам просто нужно переопределить WndProc способ получения всплывающего уведомления (подсказка в виде шарика).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top