Как показать / скрыть приложение, которое работает как:
Visible = false;
ShowInTaskBar = false;
с использованием C #?
Я попытался безуспешно, используя:
ShowWindow(handle, SW_SHOWNORMAL);
но не показывает, работает ли приложение в этой ситуации.
UPDATE; Мои пейзажи:
У меня есть приложение (написанное мной), которое, когда WindowState
равно FormWindowState.Minimized
, скрывает приложение панели задач и переводит его в «режим значка в трее».
Я использую следующий метод для обеспечения единственного экземпляра приложения:
[STAThread]
static void Main()
{
bool createdNew;
Mutex m = new Mutex(true, "...", out createdNew);
if (!createdNew)
{
Process currentProc = Process.GetCurrentProcess();
foreach (Process proc in Process.GetProcessesByName(currentProc.ProcessName))
{
if (proc.Id != currentProc.Id)
{
IntPtr handle = currentProc.Handle;
SetForegroundWindow(handle);
break;
}
}
}
else
{
Application.SetCompatibleTextRenderingDefault(false);
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
проблема в том, что он работает нормально для обеспечения единственного экземпляра, но я хочу показать приложение (выход из режима иконки в трее), если приложение запущено.
Я подумал о том, чтобы установить связь в приложениях, что-то вроде отправки сообщения из app1 (1) в app2, app2, прочитать сообщение 1 и выполнить какое-то действие. но я понятия не имею, как это сделать, ShowWindow()
казалось в прошлые часы лучшим способом сделать это, но @Hans Passant указал некоторые моменты, что это невозможно. Надеюсь, это понятно.
Различные способы решить это очень ценится. Еще раз спасибо!