Как сделать окно приложения C# невидимым и не показывать в трее?
Например в WPF, вы можете использовать Window.Hide() (Show() для отмены). Или Window.Visibility = Visibility.Collapsed (Visibility.Visible для отмены). Или если вы вовсе не хотите показывать окно, уберите StartupUri в App.xaml (и поменяйте ShutdownMode, разумеется).
В WinForms аналогично помогает Form.Visible = false; Form.ShowInTaskbar = false;. Чтобы не показывать окно с самого начала, используйте Application.Run() без формы. Или вообще не запускайте Application, если вам не нужно будет показывать окно позже.
Консольные приложения бегут в консоли, так что если вам нужен такой эффект, лучше писать неконсольное приложение. Если очень надо, можно воспользоваться P/Invoke (одолжено отсюда):
using System.Runtime.InteropServices;
static class NativeMethods
{
[DllImport("kernel32.dll")]
static public extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
static public extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
public const int SW_HIDE = 0;
public const int SW_SHOW = 5;
}
var handle = NativeMethods.GetConsoleWindow();
NativeMethods.ShowWindow(handle, NativeMethods.SW_HIDE); // убрать
NativeMethods.ShowWindow(handle, NativeMethods.SW_SHOW); // вернуть назад
Но при этом всё равно окно появится сначала, а лишь потом скроется. (А если вас запустит в своей консоли другое консольное приложение, то вы спрячете его консоль, что ещё хуже, честно говоря.) Поэтому я бы не рекомендовал идти этим путём.
Если вы уже создали консольный проект, его можно легко превратить в windows-приложение, поменяв в свойствах проекта (вкладка Application) Output type с Console Application на Windows Application.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости