没有试过你试一下lScreen=GetDC(0)
Bitblt pic.hDC,0,0,w,h,lScreen,0,0,800,600,SRCCOPY
REleaseDC 0,lScreen
Bitblt pic.hDC,0,0,w,h,lScreen,0,0,800,600,SRCCOPY
REleaseDC 0,lScreen
解决方案 »
- 使用vb怎样导入csv文件数据进入sql
- 怎样在VB里面,实现你做的程序开机就可以运行,和让你的程序运行时优先权比较高???
- 关联文件
- ado控件连接sql server问题
- 怎么样用mscomm控件实现发送和接受
- 求解:文件中记录排序算法,谢谢了!
- 请问编程怎么得到一个vb写的dll是在被谁调用?得到调用者的句柄或名称?
- 在英文XP上怎样实现停用“本地连接1”同时启用“本地连接2” 在线等!急急急急急急急急
- vb自动化错误
- 一段代码,为什么rs.recordcount总是-1呢?
- 怎样在Visual Basic中使用XP风格的菜单控件会更有效?
- 请问怎样才能在VB的CombList之类的控件中同时选择N条数据
因为mediaplayer默认是用硬件加速的OVERLAY方式播放的(目前几乎所有显卡都支持这种方式),而OVERLAY是无法抓图下来的。你得想办法让mediaplayer不用OVERLAY方式播放才能抓下来!
但mediaplayer没有可以设置播放方式的地方。
我有一个简单但有效的办法,就是多开几个mediaplayer,直到OVERLAY的显存不够了,mediaplayer就会自动切换到BLT方式播放,这时就可以抓图了!!
然后播放时把所有的mediaplayer都设好FileName都播放,注意真用来播放的mediaplayer最后.play,然后立即把假的.stop。只要够多(视显卡显存而定),最后.play的真mediaplay就会显存不够切换到BLT方式!象我的VOODOO5 64M只要四个就够了!以下代码例:'需四个mediaplayer,mediaplayer4用来播放
Option ExplicitPrivate Sub Form_Activate()MediaPlayer1.Move -100, -100, 0, 0'很奇怪MediaPlayer的
MediaPlayer2.Move -100, -100, 0, 0'Visible不起作用,所以
MediaPlayer3.Move -100, -100, 0, 0'用这种方法隐藏
MediaPlayer1.Mute = False
MediaPlayer2.Mute = False
MediaPlayer3.Mute = False
MediaPlayer1.AutoStart = False
MediaPlayer2.AutoStart = False
MediaPlayer3.AutoStart = False
MediaPlayer4.AutoStart = False
MediaPlayer1.filename = "g:\movie\matrix\matrix a.avi" '设为你的文件
MediaPlayer2.filename = "g:\movie\matrix\matrix a.avi"
MediaPlayer3.filename = "g:\movie\matrix\matrix a.avi"
MediaPlayer4.filename = "g:\movie\matrix\matrix a.avi"
MediaPlayer1.Play
MediaPlayer2.Play
MediaPlayer3.Play
MediaPlayer4.Play
MediaPlayer1.Stop
MediaPlayer2.Stop
MediaPlayer3.StopEnd Sub
你可以用printscrn键抓图来判断是否切换到BLT方式了。如果没有,是无法抓下正在播放的图像的,那就再多加几个mediaplayer。搞定BLT方式播放,抓图就简单了,用Bitblt抓到picture控件然后savepicture保存就OK!