c - BitBlt 绘制黑色方块 (Windows 7)
问题描述
我正在创建一个桌面虚拟化捕获驱动程序。基本上,驱动程序打开一个虚拟化桌面并将屏幕捕获到位图缓冲区中,并将其发送到客户端,然后将其绘制到他们的屏幕上 ( GetDIBits
/ SetDIBits
)。
问题是,问题出PrintWindow
在 Windows 7 中。在 Windows 8.1+ 中,此功能添加了一个额外的标志,可以PW_RENDERFULLCONTENT
一次性绘制整个桌面,但在 Windows 7 中,此标志不存在。
我的问题是,如何在 Windows 7 中正确模拟此标志行为,以便正确绘制所有窗口。例如,如果没有此标志,当主机在其虚拟桌面中打开 Chrome 时,PrintWindow
调用会失败,因为 Chrome 是使用 Aura 渲染的,并且PrintWindow
不是为处理此功能而构建的,因此 chrome 在中间绘制了一个黑色方块:
解决方案
推荐阅读
- usb - stm32 USB-CDC 硬件复位后
- json - Docker:b'json:无法将数字解组为字符串类型的 Go struct 字段 LogConfig.Config
- hibernate - SAP hana hibernate-ogm 支持文档和示例
- c++ - 如何将 ANN_MLP 算法 api 从 c 转换为 c++
- c - C中的联合 - 将浮点数视为字节数组
- ios - Swift/iOS 哪种通知机制最可靠?
- python - 在 python 中对数据进行规范化时,出现此错误:错误评估因子:TypeError:列表索引必须是整数或切片,而不是 str
- javascript - 组合数组对象中的键值
- c++ - C++ 递归和指针问题
- google-cloud-platform - 在DataFlow上同步执行数据的处理流程?