如何检测是否有网络摄像头连接到PC?

问题描述:

我有通过网络摄像头拍照的源代码,但我需要知道是否有网络摄像头连接到PC。如果没有摄像头,程序将不会调用拍照功能。如果有必要,我需要知道在这种情况下我必须使用哪个窗口的Api。如何检测是否有网络摄像头连接到PC?

语言:使用Windows Apis的Visual Basic 6。

+0

什么是“对拍照功能的”使用拍照?它使用哪个API? – 2009-10-19 15:08:59

+0

我使用了这两个Apis:SendMessage和capCreateCaptureWindowA。对于“拍照”,我的意思是从网络摄像头捕捉帧。 – 2009-10-19 15:28:26

WIA的问题是并非所有设备都兼容。但我自己找到了解决方案: SendMessage和capCreateCaptureWindowA一起工作。如果没有摄像头,SendMessage返回一个“0”。这是代码:

mCapHwnd = capCreateCaptureWindowA("WebCap", 0, 0, 0, m_Width, m_Height, Me.hwnd, 0) 
DoEvents 
If SendMessage(mCapHwnd, WM_CAP_CONNECT, 0, 0) <> 0 Then 
Call SendMessage(mCapHwnd, WM_CAP_CONNECT, 0, 0) 
DoEvents 
Call SendMessage(mCapHwnd, WM_CAP_SET_PREVIEW, 0, 0) 
Else 
MsgBox "No Camera Detected" 
End If 

我希望有人能找到这个有用的:)

我想有一个Flash应用程序,如果你在网站上工作。否则,您可能需要查看Windows图像采集API。

+0

不,它是一个桌面应用程序。我已经看到了闪存的代码,但我需要它的VB6。不是整个算法,只是可以检测摄像头的Api。 – 2009-10-19 15:11:11

+0

然后看看WIA api。 – Jeff 2009-10-19 15:33:24