Пример #1
0
 public bool Equals(WindowInfo window)
 {
     return
         (ClassName == window.GetClassName() &&
          (Visible == WindowVisible.Both || (window.IsVisible() && Visible == WindowVisible.True)) &&
          (Title == null || window.GetTitle() == Title));
 }
Пример #2
0
        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();
        }
Пример #3
0
        /// <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);
        }