У меня есть консольное приложение, которое я использую для запуска запланированных заданий через планировщик окон. Вся связь с/из приложения осуществляется по электронной почте, регистрации событий, журналам базы данных. Есть ли способ подавить консольное окно?
.Net консольное приложение, которое не поддерживает консоль
Ответ 1
Конечно. Создайте его как приложение winforms и никогда не показывайте свою форму.
Просто будьте осторожны, потому что тогда это уже не консольное приложение, и есть некоторые среды, где вы не сможете его использовать.
Ответ 2
Заимствован из MSDN (текст ссылки):
using System.Runtime.InteropServices;
...
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
...
//Sometimes System.Windows.Forms.Application.ExecutablePath works for the caption depending on the system you are running under.
IntPtr hWnd = FindWindow(null, "Your console windows caption"); //put your console window caption here
if(hWnd != IntPtr.Zero)
{
//Hide the window
ShowWindow(hWnd, 0); // 0 = SW_HIDE
}
if(hWnd != IntPtr.Zero)
{
//Show window again
ShowWindow(hWnd, 1); //1 = SW_SHOWNORMA
}
Ответ 3
Это взломать, но следующее сообщение в блоге описывает, как можно скрыть окно консоли:
http://expsharing.blogspot.com/2008/03/hideshow-console-window-in-net-black.html
Ответ 4
Запланируйте задачу для запуска в качестве другого пользователя, кроме вашей учетной записи, и вы не увидите окно.,.
Ответ 5
Просто настройте запланированную задачу как "Запустить, был ли пользователь включен или нет".
Ответ 6
Почему вы не делаете приложение службой Windows?