簡體   English   中英

如何檢測另一個過程的窗口是最小化還是最大化?

[英]How to detect is a window of another process minimized or maximized?

目前,我正在制作一個使用WPF制作的小工具。 它根據另一個窗口的狀態顯示和隱藏。

因此,我將另一個窗口命名為A。當顯示A或最大化A時,我的小工具就會顯示。 當A最小化時,我的小工具會隱藏。

那么,如何檢測不在.NET中的另一個進程的窗口狀態變化? 順便說一句我的英語不好:P

這只是解決方案的一部分。 如果您知道另一個窗口的標題:

Process process = Process.GetProcesses().Where(p => p.MainWindowTitle == "Title of window").SingleOrDefault();
if (process != null) {
      IntPtr wHnd = process.MainWindowHandle;
      Console.WriteLine("Minimized: "  + IsIconic(wHnd));
}

和:

    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool IsIconic(IntPtr hWnd);

您將要從想要達到的過程中獲取HWND。

如何從進程ID獲取主窗口句柄?

它需要在C#WPF應用程序中加載win32庫,如下所示。

如何使用EnumWindows查找帶有特定標題/標題的窗口?

擁有HWND之后,您可以結合使用WS_VISIBLE和WS_MAXIMIZE屬性來檢查應用程序的可見性。

如何檢查窗口是否設置了WS_VISIBLE? (或可見)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM