PrintWindow在Windows 10中的非活动桌面上
问题描述:
所以,我试图使用PrintWindow API拍摄位于非活动桌面的窗口的图片时遇到了问题,它开始让我紧张。PrintWindow在Windows 10中的非活动桌面上
问题是,在特定的窗口中,即使PrintWindow成功,并且我得到了我想要的窗口图像,该图像始终是上次桌面活动时的过期副本。起初,我认为窗口没有收到任何输入,但经过一些检查后,我发现它仍然接收和处理输入,但在桌面再次激活之前不会进行任何更改。我在Windows 7和10中测试过,并且只发生在Windows 10中。
经过一些更多的检查后,我发现主窗口实际上更新了自己,就像预期的那样,它是它的子窗口,覆盖了所有的客户端主窗口的区域,谁来负责。这两个窗口创建了以下样式:
类样式: 0x00000003 = CS_VREDRAW | CS_HREDRAW
父扩展样式:00000000
父标准样式:0x96000000 = WS_POPUP | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS
儿童扩展样式:0x00000020 = WS_EX_TRANSPARENT
儿童标准样式:0x56300000 = WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_HSCROLL | WS_VSCROLL
我已经尝试了一些绝对无法计数的事情,试图解决这个问题,并且我已经广泛地搜索了网络,都无济于事。我非常沮丧,因为如果没有人能够为此提供解释,我已经准备好放弃了。
“非活动桌面”是什么意思? – VTT
没有足够的程序员为WM_PRINTCLIENT编写消息处理程序。容易做到,他们只是没有想到它。这使得很难正确实现PrintWindow()。解决方法没有记录,但我想像Aero创建的支持位图会很有用。挂断时,桌面不活动时不再更新。类似的东西。 –
@VTT不是用户当前可见的桌面。 – Tray