[英]How to get the Form.DesktopBounds from before the window was minimized or maximized
[英]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。
它需要在C#WPF應用程序中加載win32庫,如下所示。
如何使用EnumWindows查找帶有特定標題/標題的窗口?
擁有HWND之后,您可以結合使用WS_VISIBLE和WS_MAXIMIZE屬性來檢查應用程序的可見性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.