Windows 检测PPT WPS 幻灯片播放并获取窗口句柄

需求背景:

应用投屏时,选择了PPT窗口进行投屏后,如果此时用户点击了播放幻灯片,此时是创建了一个新的窗口,此时远端播放的还是之前的窗口。
需求:播放后需要切换到PPT幻灯片放映窗口

实现步骤:

1、区分PPT幻灯片放映窗口和编辑窗口

PPT编辑窗口PPT放映窗口
exe名称wpp.exe(wps)wpp.exe(wps)
窗口属性WS_POPUP 无控制按钮
窗口标题1.pptx - WPS 演示(wps)WPS演示 幻灯片放映 - [1.pptx] (WPS)
大小可变化全屏

2、根据以上属性来找到PPT放映窗口

获取当前窗口exe名称,枚举所有窗口,如果不存在第二个exe名称相同的窗口,则认为未开始放映,
如果找到了,是否全屏,然后判断窗口属性是否存在WS_MINIMIZEBOX、WS_MAXIMIZEBOX,如果存在则不是,如果不存在继续判断是否存在POPUP属性,如果是,就找到这个HWND了

还可以监听ABN_FULLSCREENAPP消息,来判断是否有全屏窗口开关
ABN_FULLSCREENAPP监听需要从任务栏接收,如果隐藏任务栏中的显示,会无法收到

3、主流程

选择窗口投屏后,判断是不是PPT或wps,如果是,判断是否是播放窗口,如果是,直接投屏,监听到关闭时切回编辑窗口;如果不是,判断是否存在播放窗口,存在时,投屏;不存在时,开启线程监听播放窗口,监听到时,线程退出,投屏更换窗口,退出时,切换到编辑窗口

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值