Для того чтобы свернуть консольное приложение воспользуемся 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






Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!