当我用【SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0)】连接摄像头时,如果摄像头被其他程序占用得话,就会跳出一个摄像头驱动来源选择筐,可是我现在不希望弹出这个选择筐,有那位大侠知道怎么屏蔽他吗。在线等待,重谢 

解决方案 »

  1.   

    这个好像屏蔽不了,除非你自己关闭他
    或者你用别的方式,采集视频建议你用dspack,个人感觉比较好用!!嘻嘻
      

  2.   

    if hWndC <> 0 then
      begin
         SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
         SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0);
         SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0);
         SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
         SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
         SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
         SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
         SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
      end;
      

  3.   

    if hWndC <> 0 then
      begin
         SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
         SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0);
         SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0);
         SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
         SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
         SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
         SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
         SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
      end;
    还是不能达到判断摄像头是否申请成功的目的。
    SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);在摄像头被其他的程序占用的时候,会跳出一个设备选择筐,如果你选“取消”或“确定”的话,他的返回值都是0,和没有摄像头的时候是一样的。【只有在摄像头没有被其他的程序占用的时候返回值才是1】
    而无论是否有摄像头:SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0);SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0);的返回值都是0。所有以上这段程序应该不能正确判断电脑是否有摄像头。