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

标签 winapi vb6

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

语言:Visual Basic 6 使用 windows API。

最佳答案

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

我希望有人能发现这很有用:)

关于winapi - 如何检测是否有网络摄像头连接到 PC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1589154/

相关文章:

windows - 如何获取 Windows 中所有打开的命名管道的列表?

file - VB6 不会创建 EXE 文件 - 但它会使用吗?

windows - 通过间歇性网络连接复制文件

ide - VB6 IDE 正在改变我的枚举名称的大小写

来自 wchar_t* 的 C++ Win32 GDI+ 拉绳

c - connect() 因 WSAETIMEDOUT 失败后重用套接字?

c++ - 是否应处置 CreateEvent 返回的 HANDLE?

c++ - 将位图缩小到所需尺寸

vb6 - Vista 幻影目录

c# - 将 C(不是 C++)转换为 C#