public bool Equals(WindowInfo window) { return (ClassName == window.GetClassName() && (Visible == WindowVisible.Both || (window.IsVisible() && Visible == WindowVisible.True)) && (Title == null || window.GetTitle() == Title)); }
public WindowViewModel(WindowInfo window) { Window = window; Process process = window.GetProcess(); ProcessName = process?.ProcessName ?? "Not Found!"; CompanyName = process?.MainModule.FileVersionInfo.CompanyName ?? ""; ClassName = window.GetClassName(); Title = window.GetTitle(); IsVisible = window.IsVisible(); }
/// <summary> /// 根据类名查询句柄 /// </summary> /// <param name="parentHwnd">父句柄</param> /// <param name="className">类名</param> /// <returns>子窗口句柄</returns> public static IntPtr GetChildWindowByClassName(IntPtr parentHwnd, string className) { if (parentHwnd == IntPtr.Zero) { return(IntPtr.Zero); } var childHwnds = GetChildWindows(parentHwnd); foreach (var hwnd in childHwnds) { var windows = new WindowInfo(hwnd); var text = windows.GetClassName(); if (string.Compare(className, text, StringComparison.OrdinalIgnoreCase) == 0) { return(hwnd); } } return(IntPtr.Zero); }