使用Aero桌面在Windows上实时桌面捕获到内存

 simona2006_827 发布于 2023-02-04 14:58

使用C++或C#,我试图以实时速度(超过30fps)将桌面捕获到内存中.这样我就能做任何我想做的事.但我不能用Windows Aero桌面做到这一点.

但是,即使Windows Aero处于打开状态,某些桌面捕获软件也会进行实时捕获.与Google Chrome Desktop Capture,TeamViewer和Windows远程桌面一样,它们可以以实时速度(30fps)捕获整个桌面,以防快速移动视频在桌面上播放.

根据互联网上的信息,到目前为止我尝试了以下方法:

    GDI BitBlt捕获或DirectX GetFrontBuffer如果Windows Aero打开,这将具有非常低的性能.长时间使用此方法继续捕获将最终通过Windows关闭Windows Aero.

    DWMRegisterThumbnail即使Windows Aero处于打开状态,这也将具有非常好的性能.但是,问题是在所有窗口都是复合后,这无法获得桌面的图像.因此,将不会捕获分层窗口(工具提示,下拉列表框).

    Magnifier.dll即使Windows Aero开启,这也会有一些良好的性能.但是,magnifier.dll会直接绘制成一个窗口,所以我无法直接将图像捕获到内存中.

如果有人知道或了解他们是如何实现的,请给我一个建议.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有