自己这几天打算用vb做个云台控制软件,想在软件里面通过一个picture控件显示摄像头拍摄到的画面,摄像头就是平常用的那种免驱的usb接口的摄像头,虽然网上这方面的东西很多,但是picture里面得到的画面都是黑,没有图像,该怎么弄呢。Dim Video_Handle As LongPrivate Sub Command2_Click()
Video_Handle = CreateCaptureWindow(PicCapture.hwnd)
End SubPrivate Sub Command1_Click()
Dim x As StdPicture
Set x = CapturePicture(Video_Handle)
SavePicture x, "c:\a.bmp"
End SubPrivate Sub Command3_Click()
Disconnect Video_Handle
End SubPrivate Sub Form_Unload(Cancel As Integer)
Disconnect Video_Handle
End Sub这是网上找到的一段程序,运行以后画面只是黑的。
Video_Handle = CreateCaptureWindow(PicCapture.hwnd)
End SubPrivate Sub Command1_Click()
Dim x As StdPicture
Set x = CapturePicture(Video_Handle)
SavePicture x, "c:\a.bmp"
End SubPrivate Sub Command3_Click()
Disconnect Video_Handle
End SubPrivate Sub Form_Unload(Cancel As Integer)
Disconnect Video_Handle
End Sub这是网上找到的一段程序,运行以后画面只是黑的。
另外该问问厂家有没有vb开发的demo
Alias "capCreateCaptureWindowA" ( _
ByVal lpszWindowName As String, _
ByVal dwStyle As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal hWndParent As Long, _
ByVal nID As Long) As LongPrivate Const WS_CHILD = &H40000000
Private Const WS_VISIBLE = &H10000000
Private Const WM_USER = &H400
Private Const WM_CAP_START = &H400
Private Const WM_CAP_EDIT_COPY = (WM_CAP_START + 30)
Private Const WM_CAP_DRIVER_CONNECT = (WM_CAP_START + 10)
Private Const WM_CAP_SET_PREVIEWRATE = (WM_CAP_START + 52)
Private Const WM_CAP_SET_OVERLAY = (WM_CAP_START + 51)
Private Const WM_CAP_SET_PREVIEW = (WM_CAP_START + 50)
Private Const WM_CAP_DRIVER_DISCONNECT = (WM_CAP_START + 11)Private Preview_Handle As LongPrivate Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As LongPrivate Function CapturePicture(nCaptureHandle As Long) As StdPicture
Clipboard.Clear
SendMessage nCaptureHandle, WM_CAP_EDIT_COPY, 0, 0
Set CapturePicture = Clipboard.GetData
End FunctionPrivate Sub Command1_Click()
SavePicture Picture1.Picture, "c:\a.bmp"
End SubPrivate Sub Command2_Click()
Picture1.Picture = CapturePicture(Preview_Handle)
End SubPrivate Sub Form_Load()
Preview_Handle = capCreateCaptureWindow("Video", WS_CHILD + WS_VISIBLE, 2, 2, 220, 156, Me.hwnd, 1)
SendMessage Preview_Handle, WM_CAP_DRIVER_CONNECT, 0, 0
SendMessage Preview_Handle, WM_CAP_SET_PREVIEWRATE, 1, 0
SendMessage Preview_Handle, WM_CAP_SET_PREVIEW, 1, 0
End SubPrivate Sub Form_Unload(Cancel As Integer)
SendMessage Preview_Handle, WM_CAP_DRIVER_DISCONNECT, 0, 0
End Sub