Для того чтобы свернуть консольное приложение воспользуемся WinAPI функциями «ShowWindow» и «GetConsoleWindow» из библиотеки «user32.dll». Добавим их подключение перед методом Main.
[System.Runtime.InteropServices.DllImport("user32.dll")] private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); [System.Runtime.InteropServices.DllImport("kernel32.dll", ExactSpelling = true)] private static extern IntPtr GetConsoleWindow();
Метод Main является точкой входа консольного приложения C# или приложения Windows. (Для библиотек и служб не требуется метод Main в качестве точки входа). При запуске приложения метод Main является первым вызываемым методом.
Для сворачивания консольного приложения в область уведомлений, воспользуемся WinAPI функцией ShowWindow с параметром 1.ShowWindow(GetConsoleWindow(), 1);Что бы отобразить консольное приложение в области уведомлений воспользуемся пространством имен System.Windows.Forms, которое содержит классы для создания приложений Windows, позволяющие наиболее эффективно использовать расширенные возможности пользовательского интерфейса, доступные в операционной системе Microsoft Windows.
Подробнее с данным пространством имен, вы можете ознакомиться на сайте разработчиков Microsoft MSDN по адресу http://msdn.microsoft.com/ru-ru/library/system.windows.forms(v=vs.110).aspx
Добавьте данное пространство имен в ваш проект.using System.Windows.Forms;И ссылку на его библиотеку.
Данное пространство имен содержит класс NotifyIcon. Класс указывает на компонент, который создает значок в области уведомлений.
Подробнее с данным классом, вы можете ознакомиться на сайте разработчиков Microsoft MSDN по адресу http://msdn.microsoft.com/ru-ru/library/system.windows.forms.notifyicon(v=vs.110).aspx.
Указываем создание нового компонента NotifyIcon, который создаст значок в области уведомлений.NotifyIcon icon = new NotifyIcon();Далее необходимо задать текущий значок, инициализируя новый экземпляр класса System.Drawing.Icon из указанного имени файла иконки формата *.ico. Данный значок будет отображаться в значок в области уведомлений. Файл значка необходимо положить в туже директорию, что и исполняемый файл.
icon.Icon = new System.Drawing.Icon("CSHarp.ico");Так же необходимо добавить ссылку на библиотеку System.Drawing.
Укажем, что значок должен отображаться в области уведомлений.
icon.Visible = true;Зададим текст подсказки, который будет отображаться при наведении указателя мыши на значок в области уведомлений.
icon.Text = "Свернутое консольное приложение";Отобразим всплывающую подсказку с указанным заголовком, текстом и значком в области уведомлений, в течении заданного периода времени. Укажем, например, две секунды.
icon.ShowBalloonTip(2000, "Скрытое консольное приложение", "Скрытие выполнено успешно!", ToolTipIcon.Info);Так как никакого долго выполняющегося кода у нас нет, то сообщение вы не увидите, для этого добавим четырех секундную задержку.
System.Threading.Thread.Sleep(4000);Для того чтобы развернуть консольное приложение, воспользуемся WinAPI функцией, что и при сворачивании, только с параметром 1, а также добавим код для скрытия значка из области уведомлений.
ShowWindow(GetConsoleWindow(), 1); icon.Visible = false;Полный листинг приложения приведен ниже:
[System.Runtime.InteropServices.DllImport("user32.dll")] private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); [System.Runtime.InteropServices.DllImport("kernel32.dll", ExactSpelling = true)] private static extern IntPtr GetConsoleWindow(); static void Main(string[] args) { //сворачиваем в область уведомлений ShowWindow(GetConsoleWindow(), 0); //Указываем компонент, который создает значок в области уведомлений. //Этот класс не может наследоваться. NotifyIcon icon = new NotifyIcon(); //Задаем текущий значок. //Иконка расположена рядом с exe файлом icon.Icon = new System.Drawing.Icon("CSHarp.ico"); //Задаем значение, указывающее, виден ли значок в области уведомлений //в панели задач. icon.Visible = true; //Задаем текст подсказки, отображаемый при наведении указателя //мыши на значок в области уведомлений. icon.Text = "Свернутое консольное приложение"; //Отображаем всплывающую подсказку с указанным заголовком, текстом //и значком в панели задач в течении заданного периода времени. icon.ShowBalloonTip(2000, "Скрытое консольное приложение", "Скрытие выполнено успешно!", ToolTipIcon.Info); System.Threading.Thread.Sleep(4000); ShowWindow(GetConsoleWindow(), 1);//показываем icon.Visible = false; //убираем иконку из области уведомлений Console.ReadKey(); }Запустите ваш проект, нажав на клавишу «F5». Если вы все сделали правильно, то в области уведомлений вы увидите сообщение.
Ссылка на исходник: Rusfolder.net
Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!