2009-02-10 59 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());進行屏幕截圖。

相關問題