2009-02-10 76 views
34

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

+12

按下键盘上的'打印屏幕'按钮。 – 2009-02-10 18:50:21

+8

这个问题如何离线点歌?这是问如何以编程的方式,这似乎与我很相关(并不罕见)。 – jamesdlin 2013-03-02 08:52:07

+3

Offtopic?真? – Nakilon 2013-07-24 16:54:29

回答

26

您必须从中获取窗口的设备上下文(GetWindowDC())和复制图像(BitBlt())。根据您对应用程序的其他知识,您将使用不同的方法来查找要传入GetWindowDC()的哪个窗口句柄。

3

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

keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_SILENT, 0); 

在我的版本(Visual Studio 2005的帮助下安装在我的计算机上),它规定您可以通过设置第二个参数为0,或者只是一个屏幕截图把整个桌面的截图当前应用程序将其设置为1.

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

但是,在做这件事之前我会仔细考虑,因为它会草拟任何图像数据已经存在于剪贴板中。

0

这里是一个例子code
你可以做CaptureAnImage(GetDesktopWindow());进行屏幕截图。

相关问题