VB.NET调用摄像头拍照只能拍一次,再拍就会出现捕获源,选择视频设备,点确定后没有用

VB.NET调用摄像头拍照只能拍一次,再拍就会出现捕获源,选择视频设备,点确定后没有用,依然是黑屏,但是将笔记本重启后再打开就可以拍一次,然后又不行,还要重启后才能拍。
这个代码只能在2008里打开,如果谁能给编一个2010的调用摄像头拍照的更好,不要糊弄,csdn里的我们都下载尝试了,没一个好的,谢谢,以下是代码,感觉需要在stop那里做文章,求大神帮忙,重赏。

 Public Class Form1
Dim cccap As ClsCamera
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    cccap = New ClsCamera(picView.Handle, 0, 0, picView.Width, picView.Height)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnStart.Click
    cccap.Start()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnStop.Click
    cccap.Stop()
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCapture.Click
    cccap.GrabImage("c:\test.bmp")
End Sub

Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
    cccap = Nothing
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnColor.Click
    cccap.capDlgVideoSource()
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSize.Click
    cccap.capDlgVideoFormat()
End Sub
End Class

图片说明

天知道cccap是从哪里来的,它本身有没有bug
建议你直接用vfw api去操作,操作系统api绝对不会有问题。

http://download.csdn.net/download/me040526/7254167
这个程序在我的计算机上可以运行。windows 8.1,山寨摄像头,内置驱动。

你是直接调用摄像头提供的接口实现的吗?
没有在界面上显示图像吗?试试直接copy屏幕或内存(显存)的方式实现

form1__load中2次调用摄像头就可以解决问题。不过会出现一个视频源选择的对话框

打开一次之后,摄像头被占用了。