所以已经看到很多人有同样的问题但没有答案。我的 SendMessage 在带有一个摄像头的 Windows 7 笔记本电脑上弹出“视频源”对话框。我已安装 Cyber Link YouCam。
如果我卸载 Cyber Link YouCam,“视频源”对话框就会消失。似乎操作系统的行为就好像 YouCam 是同一设备的第二个驱动程序。我的问题是如何阻止“视频源”对话框出现?一旦我在对话框中选择了一个选项,我就没有得到对话框(直到我重新启动应用程序),所以必须在某处设置一个设置。
虽然调试发现这段代码(见下面的整个部分)似乎是调用对话框的那个 - SendMessage (deviceHandle, WM_CAP_CONNECT, deviceno, ((IntPtr) 0).ToInt32 ())
public void StartWebCam (int height, int width, int handleofthepicturebox, int deviceno)
{
string deviceIndex = "" + deviceno;
deviceHandle = capCreateCaptureWindowA (ref deviceIndex, WS_VISIBLE | WS_CHILD, 0, 0, width, height, handleofthepicturebox, 0);
if (SendMessage (deviceHandle, WM_CAP_CONNECT, deviceno, ((IntPtr) 0).ToInt32 ()) > 0)
{
SendMessage (deviceHandle, WM_CAP_SET_SCALE, -1, 0);
SendMessage (deviceHandle, WM_CAP_SET_PREVIEWRATE, 0x42, 0);
SendMessage (deviceHandle, WM_CAP_SET_PREVIEW, -1, 0);
}
else
{
// nothing failed maybe some clean up needed
}
}
所以问题又是 - 我如何阻止“视频源”对话框出现?