全屏检测(补)

      4月16日的时候写了一篇检测当前是否有窗口处于全屏状态的短文,判断当前窗口是否是全屏的山寨版和官方版http://blog.csdn.net/magictong/archive/2009/04/16/4085477.aspx),后来发现所谓的“官方版”也是有局限性的,因为这种方法是靠系统不停的发送一个全屏还是非全屏状态来决定是否有全屏窗口存在的,但是如果你正在使用QQ影音看电影,全屏了,这是系统发送了一个全屏的消息给你的程序,你知道全屏了,但是过了一会,后台有程序被定时器激活,弹了出来,也许不能显示在前台,但是系统会把这个窗口的状态(非全屏)进行广播,你的程序知道,哦,不是全屏了,这时就出错了,因为此时QQ影音还在那全屏放电影呢。

      解决这个问题后来和组里的一个同事讨论下,借鉴以前代码处理方案,使用枚举窗口的方法,EnumWindows,这个API需要传入一个回调函数,枚举到的所有窗口句柄会依次传给回调函数,然后你要实现一个检测整个屏幕大小的函数,对枚举到的窗口大小和屏幕大小进行比较。

      要注意的问题:有个永久全屏的窗口,Explorer,要过滤;要考虑多显示器的情况。

 

      代码就不贴了,比较简单。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值