![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Управление закрытием приложения с помощью системного трея и определение источника закрытия в WindowsDelphi , Рабочий стол , TrayBarИногда разработчикам необходимо создать приложение, которое может управлять своим состоянием при попытке закрытия, например, переходить в системный трей, если закрытие происходит по действию пользователя, но закрываться, если это происходит из-за выключения системы. В данной статье мы рассмотрим, как это можно реализовать на примере приложения на Delphi. ПроблемаРазработчик столкнулся с проблемой, что его приложение, предназначенное для работы в системном трее, не закрывалось, когда пользователь выбирал команду "Закрыть" в меню "Пуск" (WM_CLOSE) и вместо этого переходило в трей. Однако, при выключении системы приложение оставалось в трее и не закрывалось в Windows 7, в отличие от Windows XP, где оно не переходило в трей и закрывалось корректно. РешениеЧтобы решить эту проблему, необходимо использовать события
Этот код делает главную форму невидимой, что эквивалентно переходу в трей, когда пользователь пытается закрыть форму. Альтернативный подходВ качестве альтернативного подхода можно перехватить сообщение
Важно отметить, что начиная с Windows Vista, приложения больше не могут отменять закрытие системы через ЗаключениеДля управления закрытием приложения в системном трее и определения источника закрытия в Windows, разработчикам следует использовать события Управление переходом приложения в системный трей при попытке его закрытия пользователем и определение источника закрытия, чтобы отличать закрытие, инициированное пользователем, от закрытия при выключении системы в операционной сист Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |