关于读显卡抓屏

wxw999 2011-08-15 10:18:31
我想通过读显卡来抓屏,假设现在读出了全部显存的数据,

如何知道,哪些是输出的桌面数据呢?

谢谢
...全文
148 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwaly1989 2011-08-30
  • 打赏
  • 举报
回复
不知道你用常规方法抓屏录制的视频大不大,什么格式的视频
wxw999 2011-08-15
  • 打赏
  • 举报
回复
谢谢 hezhe1008 , 这些方法我都会,它有局限性
呔妖怪来嘛 2011-08-15
  • 打赏
  • 举报
回复
截屏不用读什么显卡啊

CRect rect;
CWnd *hwin=GetDesktopWindow();//获取桌面窗口句柄
CDC* pDC = hwin->GetWindowDC(); //获取桌面窗口DC
hwin->GetWindowRect(&rect);//获取桌面窗口大小

OnBtnBitmap(pDC, rect);
gz_qmc 2011-08-15
  • 打赏
  • 举报
回复
不吵了,去百度Direct方式的截屏吧
好象Win7屏蔽了这功能
wxw999 2011-08-15
  • 打赏
  • 举报
回复
晕,在这个上下文中,大家都知道桌面指的是什么,但你却理解成windows桌面,你能埋怨我?
gz_qmc 2011-08-15
  • 打赏
  • 举报
回复
好吧,我就菜鸟一把,没啥关系
游戏大多是用Direct

号称直接写屏,其实就是写显存(只有微软自己知道写没写)
可是这个Direct和GDI根本就是两回事情

桌面是啥?

Direct也只是全屏模式才真正有意义
自己想截取Direct的数据都分不清楚
以为在显示屏上看到的就叫桌面

wxw999 2011-08-15
  • 打赏
  • 举报
回复
最烦农猪这样的菜鸟装大象
wxw999 2011-08-15
  • 打赏
  • 举报
回复
再描述一遍问题,我就是想抓屏,常规方法是用api,用api实现的抓屏有很多局限性,

比如,无法抓某些游戏或视频,还有很多细节不同,这都是我在测试中发现的,懒得一一列举.

此问题,和窗口毫无关系,希望菜鸟不要自作聪明。

给某些菜鸟普及一下,设备内存(比如显存)不存在换页问题。

我是想,输出到显示器的数据是否会是显存中固定的一个区域。如果不是,那就写个过滤驱动来解决,也不是不可以。
gz_qmc 2011-08-15
  • 打赏
  • 举报
回复
当然,办法不是没有

你把所有显示的窗口都搜索一遍
包括任务栏

然后把所有窗口的区域相加
用整个屏幕的内容扣去这区域就是桌面的

当然,还要扣除显存不在屏幕的那部分
如果Window使用了显存换页技术,就等死吧,你知道是几页?
gz_qmc 2011-08-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxw999 的回复:]

谢谢 hezhe1008 , 这些方法我都会,它有局限性
[/Quote]

晕死人,要桌面的,却要从显存取,还说是因为有局限性
看来我out了,悲剧

每个窗口都有显示缓冲,显示后按Z轴顺序全COPY到显存里
盐盒装盐巴,酱油瓶装酱油
却到锅里舀瓢汤出来问味精是那部分
高,的确是高
karlson0211 2011-08-15
  • 打赏
  • 举报
回复
关注,以前也有同样的帖子
http://topic.csdn.net/t/20021107/18/1157660.html

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧