如果其他实例正在运行,请关注WPF应用程序

时间:2016-07-13 06:11:41

标签: c# wpf

我想为我的WPF应用程序创建类似Spotify的行为。当应用程序运行但在任务栏中最小化并且用户尝试启动新的实例时,它应该从任务栏恢复它,并将焦点放在已经运行的实例上。问题是偶然发现是从任务栏中的最小化状态打开应用程序以成为焦点。如果应用程序是打开的,它可以工作,但其他窗口放在它上面。

 var processHndl = FindWindow(null, "MyApplicationName!");
            if (processHndl != IntPtr.Zero)
            {
                var isIconic = IsIconic(processHndl);
                MessageBox.Show("Iconic: " + isIconic);
                if (IsIconic(processHndl))
                {
                    ShowWindow(processHndl, 9);
                }
                SetForegroundWindow(processHndl);
            }

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

请尝试

  

SwitchToThisWindow

Windows Function Reference.