注册 登录
编程论坛 VB6论坛

[求助]VB 截图报错

loyxqing 发布于 2022-03-15 20:58, 2792 次点击
最近练习VB编程,网上找了段VB截图,不知道为什么对象错误,麻烦哪位大神给解答下
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, theScreen, 0, 0)
DoEvents
Picture1.Picture = Clipboard.GetData(vbCFBitmap)
End Sub
只有本站会员才能查看附件,请 登录
6 回复
#2
loyxqing2022-03-15 20:59
运行到这句Picture1.Picture = Clipboard.GetData(vbCFBitmap)  报错
#3
yuma2022-03-15 21:06
程序代码:
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 Form_Load()
Call keybd_event(vbKeySnapshot, theScreen, 0, 0)
DoEvents
Me.Picture = Clipboard.GetData(vbCFBitmap)
sFile$ = "C:\" & Format(Now, "yyyymmddhhmmss") & ".BMP"
SavePicture Me.Picture, sFile
MsgBox "当前屏幕图像已经保存到" & sFile, 64
End
End Sub
#4
yuma2022-03-15 21:27
截图有好几种,全屏截图、指定区域截图、截取指定句柄的图、对VB控件截图,VB6都很好实现。

其中VB全屏截图又有好几种方式。
#5
独木星空2022-03-17 07:21
回复 4楼 yuma
“心生万象,万象皆程序”。你对vb6编程大彻大悟,我爱看网络小说,有一种法相:是万象法,即万物万事皆法相。
#6
yuma2022-03-18 19:50
回复 5楼 独木星空
你这样说,我都不知道怎么回答你。
#7
xiaofisher2022-05-07 10:45
尽量不要用剪贴板,用户体验不好,这点连VB6本身也被诟病(比如你从网上或其他工程中复制了一段VB代码,打开一个新的VB6进程,按Ctrl+V时会发现粘贴不上)
程序代码:
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long

Private Sub Form_Click()
    Dim hDCScreen As Long
    hDCScreen = GetDC(0)
    BitBlt Me.hdc, 0, 0, Screen.Width, Screen.Height, hDCScreen, 0, 0, vbSrcCopy
    ReleaseDC 0, hDCScreen
End Sub
1