Exemple #1
0
        //WindowのStyleがPopupならtrueを返す
        private bool IsAnyStyleWindow(IntPtr hWnd, API.WINDOW_STYLE wStyle)
        {
            API.WINDOWINFO wi     = GetWindowInfo(hWnd);
            uint           uStyle = (uint)wStyle;
            var            style  = wi.dwStyle & uStyle;

            return(style == uStyle);
        }
Exemple #2
0
        /// <summary>
        /// 指定したWindowStyleを持つWindow全部取得
        /// </summary>
        /// <param name="hWnd"></param>
        /// <param name="cmd">Next or Prev</param>
        /// <returns></returns>
        private (List <IntPtr> ptrs, List <API.RECT> rects, List <string> strs) GetAnyStyleWindows(IntPtr hWnd, API.GETWINDOW_CMD cmd, API.WINDOW_STYLE winStyle)
        {
            List <IntPtr>   ptrs  = new();
            List <API.RECT> rects = new();
            List <string>   strs  = new();
            var             hWnds = GetWindowsNextOrPrev(hWnd, cmd);

            foreach (var item in hWnds)
            {
                if (IsAnyStyleWindow(item, winStyle))
                {
                    ptrs.Add(item);
                    rects.Add(GetWindowRect(item));
                    strs.Add(GetWindowText(item));
                }
            }
            return(ptrs, rects, strs);
        }