//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); }
/// <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); }