在Windows中使用C ++进行窗口截图的最佳方式是什么?
用Windows下的C ++截取正在运行的应用程序的最佳(最简单)方法是什么?
您必须获取窗口的设备上下文( GetWindowDC()
)并从中复制图像( BitBlt()
)。 根据您对应用程序的了解,您将使用不同的方法来查找将哪个窗口的句柄传递给GetWindowDC()
。
在keybd_event函数文档中,它声明可以使用它来截取屏幕截图并将其保存到剪贴板。 例如:
keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_SILENT, 0);
在我的版本中(Visual Studio 2005帮助安装在我的电脑上),它指出可以通过将第二个参数设置为0或者将当前应用程序的屏幕截图设置为1来截取整个桌面。
将其从剪贴板缓冲区中取出作为读者的练习。
不过,在做这件事之前,我会仔细考虑,因为它会影响剪贴板中已存在的任何图像数据。
这是一个示例代码
你可以做CaptureAnImage(GetDesktopWindow());
做一个屏幕截图。