2014-07-17 50 views
1

有沒有辦法激活或將外部應用程序的窗口帶到前面?我能得到的最接近的是有沒有辦法用White激活一個窗口?

var application = Application.Attach("SearchApp"); 
var searchWindow = application.GetWindows()[0]; 

searchWindow.Focus(DisplayState.Maximized); 

但是,如果它當前不活躍,它會在後臺最大化它。

+0

你谷歌嗎? 「將wpf窗口放在前面」的第一個結果之一:[如何將WPF窗口放在前面?](http://stackoverflow.com/questions/3399495/how-do-bring-a-wpf-window-這是[另一個重複](http://stackoverflow.com/questions/7211523/wpf-bring-window-to-front)和[另一個](http://stackoverflow.com/questions/257587/帶來一個窗口在前面在WPF) – tnw

+0

我做到了。問題是我不需要把我的窗口放在前面,我需要將它做到外部應用程序。 – Amorphous

+1

*哦*。這是一個非常不同的問題。我編輯了你的反映。不要忘記在你的文章中包含所有*相關信息。 – tnw

回答

2

得到它的工作。

[DllImport("user32.dll", SetLastError = true)] 
    internal static extern bool SetForegroundWindow(IntPtr windowHandle); 


    public bool SearchTest(string file) { 
     try 
     { 
      // White stuff, not relevant to problem 
      //var application = Application.Attach("SearchApp"); 
      //var searchWindow = application.GetWindows()[0]; 

      Process p = Process.GetProcessesByName("SearchApp")[0]; 
      SetForegroundWindow(p.MainWindowHandle); 
+1

就是這樣!祝賀:) – Sonhja

相關問題