3
我使用System.Windows.Window.IsActive
來檢測窗口是否在前臺並在某些情況下有效。但是,我發現它沒有的情況下,我不知道是否有任何方法來檢測它。如何檢測當前的WPF窗口是否在用戶會話前臺?
我使用System.Windows.Window.IsActive
來檢測窗口是否在前臺並在某些情況下有效。但是,我發現它沒有的情況下,我不知道是否有任何方法來檢測它。如何檢測當前的WPF窗口是否在用戶會話前臺?
下面的方法工作除了只有後臺進程獲得焦點。 Windows桌面就是這種情況。它竊取前景窗口的狀態,但它不在前臺。
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
public bool IsForeground()
{
Window window = Application.Current.MainWindow;
IntPtr windowHandle = new WindowInteropHelper(window).Handle;
IntPtr foregroundWindow = GetForegroundWindow();
return windowHandle == foregroundWindow;
}