不用Bitblt如何实现截屏???

解决方案 »

  1.   

    模拟键盘是无法输出 PrtSc 按钮的,不信你可以试试。比较简单的方法是使用 GETDC(0)获得当前显示的屏幕画面句柄,再用transparentblt/stratchblt等等等等方法获得图像(嘿嘿,没有用BITBLT吧)。
    什么?你说我耍赖?
    那就用GETDIB来获得图像吧(连像素都自动进数组了,爽吧,哈哈)
      

  2.   

    //模拟键盘是无法输出 PrtSc 按钮的,不信你可以试试。
    老菜,不是泡菜要对自己说的话负责啊!(^-^
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Const theScreen = 0
    Const theForm = 1
    Private Sub Command1_Click()
    Call keybd_event(vbKeySnapshot, theForm, 0, 0)
    '若theForm改成theScreen则Copy整个Screen
    DoEvents  '少了这一句有时会出现没有反映的现象
    Picture1.Picture = Clipboard.GetData(vbCFBitmap)
    End Sub
      

  3.   

    为什么要"不用Bitblt"实现截屏?
      

  4.   

    如果要捕获游戏图像或者播放器图像,可以搜索一下DirectX截屏
      

  5.   

    哎呀,真的是我失察了么?要怪就怪VB为什么给PRISC键起了个什么"vbKeySnapshot"的怪名字,不是偶的错阿不是偶的错,哈哈.
    知道偶的英语不好,可以原谅,哈哈