Как сделать окно приложения 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.
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть в приложении mvc фильтр для генерации ошибок на клиент
Нашёл на stackoverflow тему как передавать файл с клиента на серверhttps://stackoverflow
Как реализовать потоки? я ничего в них не понимаюТакое выводит:"Не возможно преобразовать из группы методов в ThreadStart"