единый экземпляр и уведомление в системном трее
-
12-09-2019 - |
Вопрос
Я работаю над приложением (C # 2.0).Я реализовал в нем единственный экземпляр.Все в порядке.Если я снова запущу приложение, оно покажет messagebox с надписью "экземпляр уже запущен".
На самом деле я не хочу показывать сообщение через messagebox.
Я хочу показать это сообщение, используя всплывающую подсказку уже запущенного экземпляра (у него есть значок уведомления в системном трее).
Как я могу этого добиться?
Заранее благодарю.
Решение
Вам нужна форма межпроцессного взаимодействия, чтобы сигнализировать другому экземпляру, что он должен отобразить окно сообщения.
В этом случае вы могли бы пойти на шаг лучше, чем указать существующему экземпляру отобразить сообщение и вместо этого приказать ему восстановить главное окно (т. е.«не минимизировать»).
Другие советы
Вы можете использовать службу WCF внутри своего приложения.
Ваше второе приложение подключается к нему через NetPipe, вызывает метод и закрывается.
Ваше первое приложение принимает звонок и отображает всплывающее уведомление.
Самый простой способ реализовать один экземпляр и сообщить первому о запуске второго уже реализован в .Net.Просто взгляните на следующие ссылки:
Тот самый Среда выполнения CodeFluent который является бесплатным набором инструментов, обеспечивает Одиночный экземпляр класс для реализации приложения с одним экземпляром:
Вам просто нужно переопределить WndProc способ получения всплывающего уведомления (подсказка в виде шарика).