PrintWindow和Microsoft Edge

我们在Windows 10(Build 10166)上的PrintWindow函数有问题。 当我们调用PrintWindow( https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd162869 ( v= vs.85).aspx)捕获Microsoft Edge(Project Spartan)浏览器窗口的图像我们得到一个黑色的图像。

有没有人知道这个原因,如何解决/避免? 或者,也许有其他方式来捕捉窗口的图像,可以在后台和隐藏在另一个窗口后面?

更新 :我们试着发送WM_PRINTCLIENT和WM_PRINT消息,并用WM_PRINT调用DefWindowProc,但结果是一样的 – 只是一个黑色的图像。 我们也尝试使用BitBlt将窗口的DC复制到内存表面,但是它不工作。 我们现在最好的解决scheme是将浏览器窗口置于前台,捕获整个屏幕并将屏幕截图裁剪为窗口的客户端大小; 但由于切换当前正在使用的应用程序,它可能会中断和惹恼用户。

Solutions Collecting From Web of "PrintWindow和Microsoft Edge"

如果你想在浏览器上截取页面的截图。 试试这个JavaScript库: http : //html2canvas.hertzen.com/脚本遍历它加载的页面的DOM。 它收集所有元素的信息,然后用它来构建页面的表示。 换句话说,它实际上并不是对页面进行截图,而是基于从DOM读取的属性来构建它的表示。

我只是在我的机器上试用了Microsoft Edge和Chrome,并在两者上都有所作为。希望这样做!

我有同样的问题与IE 试试这个 。 最稳定的结果是双重打电话

 PrintWindow(hWnd, hdcScreen, 0); PrintWindow(hWnd, hdcScreen, PW_CLIENTONLY);