Я имею в виду, когда пользователь запускает мое приложение (exe). Я хочу, чтобы он начинался прямо в системном трее, не показывая окно. Как и антивирусные программы & менеджеров загрузки, которые запускаются и запускаются в системном лотке молча.Как запустить приложение непосредственно в системном трее? (.NET C#)
Мне нужен тот же эффект, и когда пользователь нажимает кнопку «show» контекстного контекста notifyIcon, тогда только приложение должно отображать GUI.
Я использую это, но он не работает
private void Form_Load(object sender, EventArgs e)
{
this.Hide();
}
Может быть мне нужно иметь функцию Main() в какой-либо другой класс, который не имеет графического интерфейса, но имеет NotifyIcon & ContextMenuStrip, чей вариант будет экземпляр GUI класс окна. Правильно?
См. Также этот вопрос - http://stackoverflow.com/questions/807005/c-net-winforms-instantiate-a-form-without-showing-it – ChrisF
Извините, что вытащил старую тему. У меня есть все, кроме одной важной вещи. Я понимаю, что 'Application.Run()' существенно освобождает управление (?). Я хочу сделать код, который делает что-то без взаимодействия с пользователем (скажем, он обрабатывает данные и записывает их в файл). Где бы я поместил этот код так, чтобы он выполнялся, пока программа сидит в системном трее? –
@BarryDysert: 'Приложение.Run() 'запускает насос сообщений Windows. Если у вас нет этого вызова где-нибудь, ваш значок в трее не будет работать вообще. Не зная ничего о том, чего вы на самом деле пытаетесь достичь, я бы сказал, чтобы посмотреть на потоки, просто знайте о проблемах, изменяющих материал пользовательского интерфейса в потоках, отличных от тех, из которых вызывается 'Application.Run()'. –