Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果其他实例正在运行,请将焦点放在WPF应用程序上_C#_Wpf - Fatal编程技术网

C# 如果其他实例正在运行,请将焦点放在WPF应用程序上

C# 如果其他实例正在运行,请将焦点放在WPF应用程序上,c#,wpf,C#,Wpf,我想为我的WPF应用程序创建一个类似Spotify的行为。当应用程序正在运行,但在任务栏中最小化,并且用户尝试启动新instance时,应用程序应该从任务栏恢复,并将焦点放在已经运行的实例上。偶然发现的问题是从任务栏中的最小化状态打开应用程序以获得焦点。如果应用程序处于打开状态,但在其上放置了其他窗口,则它可以工作 var processHndl = FindWindow(null, "MyApplicationName!"); if (processHndl != I

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

 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);
            }
有什么想法吗?

请试试

切换到此窗口

请再试一次

切换到此窗口


您是否尝试过切换到此窗口?不,我会尝试一下,效果不错!谢谢你试过换到这个窗口吗?不,我试一下,很有效!谢谢