2017-02-17 111 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

相关问题