C# запуск скрытого процесса. Запуск программы в скрытом режиме
Достаточно часто требуется запустить программу в фоновом режиме, без видимого отображения окон, которые могут мешать работе в видимом режиме.
Для примера, запустим программу для rclone для резервного копирования информации на сервер в режиме синхронизации.
using System.Diagnostics;
Process p = new Process();
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.FileName = @"rclone.exe";
p.StartInfo.Arguments = @"sync C:\backup\ remote_server:/home/user/backup";
p.Start();
Кроме этого возможно скрыть не только саму программу, но и наше приложение запускающее эту программу сделать невидимым, например для использования в других скриптах. Для этого создаем новое windows приложение работающее в оконном режиме.
Во время загрузки формы добавляем следующий код
private void Form1_Load(object sender, EventArgs e)
{
Visible = false;
ShowInTaskbar = false;
}
Скрываем форму и не показываем его на панели задач.
Не забываем закрыть приложение, если сделали его невидимым, после выполнения необходимых действий.
System.Windows.Forms.Application.Exit();
Использование для скрытия FormWindowState.Minimized минимизируя окно с отключеным отображением в панели и прозрачности Opacity для визуального исчезновения окна не решает вопрос скрытия, т.к. при некоторых сценариях окно будет видимым у пользователя. Например отображение по alt + tab, использование сторонних оболочек и дополнений.