2017-02-17 145 views
0

我是Nvidia GTX 1060的擁有者。我知道使用Windows無法直接訪問顯卡的視頻內存。但是我在電子郵件列表上的某個地方閱讀過,使用CUDA API可以在顯示器上獲取顯示的像素。不幸的是,我發現沒有代碼示例。使用cuda獲取可見應用程序的屏幕截圖

我要的是一樣的東西包含的像素

arr[0] = 255  // red 
arr[1] = 255  // green 
arr[2] = 0   // blue 
arr[3] = 0   // alpha 
arr[4] = 255 
... 

可有人請告訴我一個例子,如何使用CUDA來做到這一點的RGB值的位圖狀陣列?

我知道有一種方法使用DirectX或OpenGL。我已經嘗試過了,但它要麼太複雜,要麼太慢,並且不能同時使用全屏和窗口化應用程序。

+2

不,這是CUDA無法實現的。您需要使用DirectX或OGL等圖形API。 –

+0

我想你不應該相信你在電子郵件中讀到的所有東西。 – talonmies

回答

3

你所描述的不僅是不可能的,甚至可能被視爲安全缺陷。一般來說,如果沒有操作系統的某種同意和控制,一個應用程序不應該能夠檢索另一個應用程序的顯示窗口。

我記得幾年前就讀過關於這種缺陷的文章,但是我再也找不到這篇文章了。不過,還有很多其他文章討論類似的問題。例如,在:

http://ece.neu.edu/groups/nucar/NUCARTALKS/snp14-gpusteal.pdf

他們討論GPU漏洞允許惡意程序,以部分地重建在鉻所示的網頁。

+0

哇,這聽起來很不錯,晚上閱讀。不要害怕......我只是想在沒有硬件捕捉設備的情況下製造一個自制的流光溢彩。沒有罪惡。 – mirokai

相關問題