2013-01-03 36 views
3

當我的應用程序需要獲取其他Windows應用程序的屏幕截圖時,我遇到了一個問題。快速獲取C++(Win32)中Windows應用程序屏幕截圖的方法?

我使用的功能WIN32API「PrintWindow」,但這並不能很好地工作。它很慢,其他應用程序窗口內的一些組件顯示爲黑色矩形。

有一個應用程序(MAC-OS風格的任務切換)稱爲DExpose2通過Devrexster。它可以非常快速地獲得其他應用程序的屏幕截圖,該死的速度很快,甚至可以連續獲取這些屏幕截圖。

我想這是使用Direct3D來獲得的應用程序,而不是因爲我使用的GDI截圖。有沒有可能爲此目的使用Direct3D?如果可能的話,哪個應該是最好的方法?

回答

2

爲Vista +答案是another answer:窺探的DirectX的緩衝。

DExpose2可能沒有「得到」的截圖。即它不會將它們從視頻卡傳輸到RAM。這是一個緩慢的操作,並且必須緊接着另一個慢速複製到視頻卡。我預計它只是在顯卡側應用一些縮放和移動轉換,而不會有像素或紋素穿過PCI-e總線。

相關問題