+ -
当前位置:首页 → 问答吧 → 关于GetDC后台取图的问题

关于GetDC后台取图的问题

时间:2011-12-19

来源:互联网

正常使用 GetDC,如果窗口被挡住,是得到不指定窗口的图的。但我发现用一个叫大漠后台的插件先绑定窗口后,再用GetDC该窗口,就算被挡住也能得到该窗口的图。

求教,是用什么方法,可以让GetDC取到后台窗口的图的呢?

1、是改了窗口属性?我用spy++查了,也没发现有什么变化

2、是Hook API?我查了要截图的窗口进程,也没发现插件的DLL驻入进去

3、是跟窗口刷新的有效区、无效区有关吗?这个我不太懂

有没有高手知道,是什么方法,使得GetDC得到了后台窗口的图呢?

作者: Goodreams   发布时间: 2011-12-19

后台的m_hWnd

作者: wawagua   发布时间: 2011-12-19

什么叫窗口被挡住,GetDC(HWND hwnd),是根据窗口句柄来获得的,只要你获得窗口的句柄就行了~~~

作者: calm_keep   发布时间: 2011-12-19

引用 1 楼 wawagua 的回复:
后台的m_hWnd


我肯定是指定了要截取窗口的句柄了,有环境的话,您试下,GetDC(m_hWnd)只能得到该句柄窗口区域显示器上显示的图,也就是被档住就不行的

作者: Goodreams   发布时间: 2011-12-19

引用 2 楼 calm_keep 的回复:
什么叫窗口被挡住,GetDC(HWND hwnd),是根据窗口句柄来获得的,只要你获得窗口的句柄就行了~~~


您跟1楼上是一样的看法,被挡住的部分是得不到图的。

作者: Goodreams   发布时间: 2011-12-19

这个问题据我知道的方法,就是在驱动层面上解决的。

作者: yang79tao   发布时间: 2011-12-19

窗口被挡着了
你可以将其显示在屏幕之外,
  再截图,之后再把它重新隐藏恢复到原来的位置。
比如:
::SetWindowPos(hWnd,NULL,-8000,-8000,0,0,
SWP_NOSIZE |SWP_NOACTIVATE |SWP_SHOWWINDOW );

作者: gameslq   发布时间: 2011-12-19

热门下载

更多