在Windows中使用C ++进行窗口截图的最佳方式是什么?

用Windows下的C ++截取正在运行的应用程序的最佳(最简单)方法是什么?

您必须获取窗口的设备上下文( GetWindowDC() )并从中复制图像( BitBlt() )。 根据您对应用程序的了解,您将使用不同的方法来查找将哪个窗口的句柄传递给GetWindowDC()

在keybd_event函数文档中,它声明可以使用它来截取屏幕截图并将其保存到剪贴板。 例如:

 keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_SILENT, 0); 

在我的版本中(Visual Studio 2005帮助安装在我的电脑上),它指出可以通过将第二个参数设置为0或者将当前应用程序的屏幕截图设置为1来截取整个桌面。

将其从剪贴板缓冲区中取出作为读者的练习。

不过,在做这件事之前,我会仔细考虑,因为它会影响剪贴板中已存在的任何图像数据。

这是一个示例代码
你可以做CaptureAnImage(GetDesktopWindow()); 做一个屏幕截图。