使用下面的API函数,可截取指定窗体画面,或者全屏幕.Const vk_snapshot As Byte = &H2C
Public Declare Sub keybd_event Lib "user32" (ByVal bvk As Byte, ByVal scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
具体实现如下:
 Clipboard.Clear
 Call keybd_event(vk_snapshot, 1, 0, 0)
 SavePicture Clipboard.GetData(vbCFBitmap), "C:\newpic.bmp"
=============================================
我喜欢VB,欢迎访问我的网站,上面有很多用VB编写的好东东.
http://www.minisoft.d2g.com 
1 疾病诊断专家系统;
2 人工智能电子地图 ; 
3 Word密码探测器;
4 知道别人在干啥(局域网监视器)
5 日积月累学英文
愿意与广大VB爱好者交流. 

解决方案 »

  1.   

    使用下面的API函数,可截取指定窗体画面,或者全屏幕.Const vk_snapshot As Byte = &H2C
    Public Declare Sub keybd_event Lib "user32" (ByVal bvk As Byte, ByVal scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    具体实现如下:
    Clipboard.Clear
    Call keybd_event(vk_snapshot, 1, 0, 0)
    doevents
    doevents
    SavePicture Clipboard.GetData(vbCFBitmap), "C:\newpic.bmp"
      

  2.   

    楼上的那位的代码好象只能截取活动窗口或整个屏幕,截取指定位置的图解还得用
    getdc
    bitblt
    deleteobject
    设置一个invisible的缓冲屏,然后再保存成.bmp
      

  3.   

    还是用Bitblt。
    用一个Picture作为目标,将位图用Bitblt拷贝需要的区域到PictureBox,然后用Picture1.SavePicture Picture1.image,FileNmae
      

  4.   

    这个问题我解决了,谢谢大家
    最简单的办法就是
    先把一个picturebox的autoredraw属性设为true
    然后用bitblt函数把需要的场景传送给这个pictruebox
    再用savepicture picture1.image,"c:\aa.bmp"就可以存盘了
    我的分现在还不够50,参与分暂换不了,等有分了一定送上,谢谢!!!
      

  5.   

    getdc(0)'0实质为全屏
    bitblt 到一个picturebox
    savepicture