added tray menu
This commit is contained in:
+30
-1
@@ -33,13 +33,42 @@ MSIX всегда выполняются в контексте вошедшег
|
||||
раскладки чужого окна не ограничено, поэтому сама подсказка продолжает работать
|
||||
везде.
|
||||
|
||||
## Трей
|
||||
|
||||
Приложение работает в фоне и живёт в области уведомлений. Окно настроек —
|
||||
гость на экране, а не само приложение: оно показывается после установки и
|
||||
всякий раз, когда его просят иконка или её меню. Обе кнопки в заголовке окна —
|
||||
свернуть и закрыть — убирают окно в трей и ничего не завершают; выход из
|
||||
приложения — пункт «Выход» в меню трея.
|
||||
|
||||
Окно скрывается, а не закрывается. Закрытие унесло бы с собой его дескриптор, и
|
||||
всё, что на окне держится, — тема, место, где его оставили, вычисленная
|
||||
разметка, — строилось бы заново при каждом показе.
|
||||
|
||||
Меню иконки сделано средствами WPF, а не системное: так оно держится темы и
|
||||
языка, выбранных в настройках, как и остальной интерфейс.
|
||||
|
||||
Запущенное самой Windows, приложение не показывает окна вовсе и сразу уходит в
|
||||
трей — пользователь просил, чтобы оно было на месте при входе в систему, а не
|
||||
чтобы окно встречало его каждое утро. Такой запуск две сборки распознают
|
||||
по-разному: запись в реестре у распакованной сборки несёт аргумент `--startup`, а
|
||||
пакет своей командной строкой не распоряжается, и вместо неё Windows
|
||||
спрашивают об активации.
|
||||
|
||||
Если Windows откажет иконке — в сеансе без рабочего стола области уведомлений
|
||||
нет, — окно возвращает себе обычные обязанности: показывается при любом запуске,
|
||||
а его закрытие завершает приложение. Иначе у пользователя осталось бы
|
||||
приложение, которое он не может ни увидеть, ни закрыть.
|
||||
|
||||
## Автозапуск
|
||||
|
||||
Автозапуск включается из настроек приложения тем способом, который доступен
|
||||
сборке. Пакет объявляет его в манифесте как `windows.startupTask`. Сборка,
|
||||
распакованная в папку, прописывается так, как это всегда делали программы для
|
||||
рабочего стола, — в `HKCU\Software\Microsoft\Windows\CurrentVersion\Run`, и прав
|
||||
администратора для этого не нужно.
|
||||
администратора для этого не нужно. Записанная там команда заканчивается на
|
||||
`--startup`: так приложение отличает запуск, устроенный самой Windows, от
|
||||
запуска пользователем.
|
||||
|
||||
И в том, и в другом случае Windows показывает приложение в разделе Параметры —
|
||||
Приложения — Автозагрузка; если пользователь выключит его там, приложение уже не
|
||||
|
||||
Reference in New Issue
Block a user