adressmoeistranici
@adressmoeistranici
Делатель

Событие что ты нажал на иконку приложения в панели задач?

Как узнать что я нажал на иконку окна в панели задач?
не могу найти в студии...
activated не подходит(
  • Вопрос задан
  • 358 просмотров
Решения вопроса 1
adressmoeistranici
@adressmoeistranici Автор вопроса
Делатель
Для решения своей задачи я обошелся все таки activated и булом)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@cicatrix
было бы большой ошибкой думать
Клик по иконке в панели задач приводит к запуску приложения. Если ваше приложение уже запущено, запустится ещё одна копия.
Если вы хотите, чтобы ваше приложение запускалось только единожды (в одном экземпляре), то есть несколько подходов - либо создавать в системе мьютекс, и удерживать его до выхода (при повторном запуске, если мьютекс занят, завершать приложение), вот здесь описано подобное решение. (Там же приведён код активации окна уже запущенного приложения, если оно свёрнуто).
Альтернативно, можно смотреть список запущенных процессов, искать свой процесс, и выходить, если найден.
Либо в качестве мьютекса можно использовать любой блокирруемый системный ресурс (например, файл), но это не правильно.
Ещё можно использовать именованный канал (named pipe), но это более громоздкое решение, и его следует использовать только если вам нужно осуществлять коммуникации между несколькими копиями вашего приложения.
Ответ написан
AnotherAltr
@AnotherAltr
C# Dev
Тут скорее всего придется писать библиотеку на WinAPI.
Библиотек для работы с панелью задач достаточно мало, и они все очень кривые.

Ну и как вариант можно скомбинировать эвенты minimize & maximize.
Ответ написан
Комментировать
Надо обрабатывать событие WM_WINDOWPOSCHANGED
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы