文档章节

遍历所有的windows窗口

A
 Alen
发布于 2017/07/27 10:33
字数 146
阅读 11
收藏 0

BOOL CALLBACK EnumWindowFunc(HWND hwnd, LPARAM lParam)
{
    if (::GetWindowLong(hwnd, GWL_STYLE) & WS_VISIBLE)
    {
        //可见
        if (::IsIconic(hwnd))
        {
            //过滤掉最小化
            return 1;
        }
        
        //获得窗口标题
        CString strWindowName = _T("");
        ::GetWindowText(hwnd, strWindowName.GetBuffer(256), 256);

        //获取窗口类名
        CString strWndClassName = _T("");
        ::GetClassName(hwnd, strWndClassName.GetBuffer(256), 256);

        if ((strWindowName.IsEmpty() && _tcscmp(strWndClassName, _T("WorkerW")) == 0)
            || (_tcscmp(strWindowName, _T("Program Manager")) == 0 && _tcscmp(strWndClassName, _T("Progman")) == 0)
            )
        {
            //过滤掉桌面
            return 1;
        }

        //获取桌面任务栏以上的整个屏幕大小
        CRect rc;
        SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, sizeof(rc));

        CRect rc_wnd;
        ::GetWindowRect(hwnd, &rc_wnd);
        if (rc_wnd.Width() >= rc.Width() && rc_wnd.Height() >= rc.Height())
        {
            //比桌面工作区大的窗口
            *(BOOL *)lParam = TRUE;
            return 0;
        }
    }
    return 1;
}

 

调用

    BOOL bFullScreenWnd = FALSE;
    ::EnumWindows(EnumWindowFunc, (LPARAM)(&bFullScreenWnd));

© 著作权归作者所有

A
粉丝 0
博文 36
码字总数 4486
作品 0
浦东
高级程序员
私信 提问
Windows窗体数据抓取详解

最近在客户项目上刚好遇到一个问题,项目需求是要获取某台机床的实时状态,问题点刚好就在于该机床不是传统意义上的数控机床,也不是PLC控制器,只有一个上传下载程序文件的应用程序,上面刚...

wangqiulin123456
2018/04/22
0
0
UI自动化测试工具White简介以及使用经验总结(一)

一、White简介 White是微软开发的一个开源工具,它提供了一套主要用于UI测试的框架。它适用于WinForm, WPF, Win32 以及SWT(java)的测试。 White是用C#开发的,但White除了支持.Net语言外,还...

pumpkinmum
2013/01/20
3.5K
0
开发那点事(一)bat脚本自动pull代码

最近公司项目管理上的一个需求,将每个项目备份的公司电脑服务器上,保持每天更新。代码一直是更新在码云上的,需要通过git命令下拉代码。 整体思路:将公司所有项目放在同一文件夹下,通过f...

极客简讯
03/18
0
0
用C#调用Windows API向指定窗口发送按键消息

用C#调用Windows API向指定窗口发送 一、调用Windows API。  C#下调用Windows API方法如下:  1、引入命名空间:using System.Runtime.InteropServices;  2、引用需要使用的方法,格式:[...

RablePHP
2016/06/03
988
0
C#查找指定窗口的子窗口的句柄

using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices; namespace Util{...

u013934107
2018/04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
1K
12
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
38
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部