[发明专利]一种基于gdi/gdi+窗口被覆盖的录制方法及装置有效
申请号: | 201611109584.1 | 申请日: | 2016-12-02 |
公开(公告)号: | CN106775690B | 公开(公告)日: | 2020-10-09 |
发明(设计)人: | 罗婷 | 申请(专利权)人: | 广东威创视讯科技股份有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张春水;唐京桥 |
地址: | 510670 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gdi 窗口 被覆 录制 方法 装置 | ||
1.一种基于gdi/gdi+窗口被覆盖的录制方法,其特征在于,包括:
获取到屏幕设备的屏幕或窗口录制指令;
根据所述屏幕或窗口录制指令确定待录制的被覆盖或移到屏幕外的窗口;
创建与屏幕设备兼容的内存区域HDC,并创建对应的位图将所述位图与所述内存区域HDC绑定;将所述待录制的被覆盖或移到屏幕外的窗口通过所述屏幕设备传送到所述位图中;
其中,创建与屏幕设备兼容的内存区域HDC,并创建对应的位图将所述位图与所述内存区域HDC绑定具体包括:
调用CreateCompatibleDC创建与屏幕设备兼容的内存区域HDC;
调用CreateCompatibleBitmap创建相关位图,调用SelectObject把刚创建的位图与内存区域HDC绑定;
将所述待录制的被覆盖或移到屏幕外的窗口通过所述屏幕设备传送到所述位图中具体包括:
判断所述待录制的被覆盖或移到屏幕外的窗口是否为静态窗口,若是,则不再截屏所述静态窗口,采用覆盖前的窗口数据作为所述待录制的被覆盖或移到屏幕外的窗口,若否,则调用函数PrintWindow截图所述待录制的被覆盖或移到屏幕外的窗口;
调用BitBlt把屏幕设备传到所述位图中,是对内存dc保存所述待录制的被覆盖或移到屏幕外的窗口的内容。
2.根据权利要求1所述的基于gdi/gdi+窗口被覆盖的录制方法,其特征在于,根据所述屏幕或窗口录制指令确定待录制的被覆盖或移到屏幕外的窗口具体包括:
调用GetWindowDC获取所述待录制的被覆盖或移到屏幕外的窗口dc。
3.一种基于gdi/gdi+窗口被覆盖的录制装置,其特征在于,包括:
获取单元,用于获取到屏幕设备的屏幕或窗口录制指令;
确定单元,用于根据所述屏幕或窗口录制指令确定待录制的被覆盖或移到屏幕外的窗口;
创建绑定单元,用于创建与屏幕设备兼容的内存区域HDC,并创建对应的位图将所述位图与所述内存区域HDC绑定;
传送单元,用于将所述待录制的被覆盖或移到屏幕外的窗口通过所述屏幕设备传送到所述位图中;
创建绑定单元具体包括:
创建子单元,用于调用CreateCompatibleDC创建与屏幕设备兼容的内存区域HDC;
绑定子单元,用于调用CreateCompatibleBitmap创建相关位图,调用SelectObject把刚创建的位图与内存区域HDC绑定;传送单元,具体用于:
调用BitBlt把屏幕设备传到所述位图中,是对内存dc保存所述待录制的被覆盖或移到屏幕外的窗口的内容;
判断所述待录制的被覆盖或移到屏幕外的窗口是否为静态窗口,若是,则不再截屏所述静态窗口,采用覆盖前的窗口数据作为所述待录制的被覆盖或移到屏幕外的窗口,若否,则调用函数PrintWindow截图所述待录制的被覆盖或移到屏幕外的窗口。
4.根据权利要求3所述的基于gdi/gdi+窗口被覆盖的录制装置,其特征在于,确定单元,具体用于调用GetWindowDC获取所述待录制的被覆盖或移到屏幕外的窗口dc。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东威创视讯科技股份有限公司,未经广东威创视讯科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611109584.1/1.html,转载请声明来源钻瓜专利网。