У меня есть приложение WPF, которое запускается как обычно. Пользователь может затем скрыть приложение. Когда они скрывают приложение, оно больше не отображается на панели задач, а главное окно скрывается вызовом Hide ().
В какой-то момент в будущем пользователь запускает другое приложение, которое должно показать первое приложение. Я попытался показать первое приложение со следующим кодом:
private const int SW_SHOWNORMAL =1;
Process[] processes = Process.GetProcessesByName(ProcessName);
int nProcessID = Process.GetCurrentProcess().Id;
foreach (Process p in processes)
{
if (nProcessID != p.Id)
{
p.Refresh();
ShowWindow(p.MainWindowHandle, SW_SHOWNORMAL);
SetForegroundWindow(p.MainWindowHandle);
}
}
Однако это не работает, потому что MainWindowHandle всегда равен нулю. Я понимаю, что это потому, что приложение больше не отображается на панели задач и, следовательно, больше не имеет дескриптора.
Есть ли другой способ сделать это?