我想编一个程序,运行后能够自动侦测现在是否安装采集卡,安装的是什么采集卡,然后利用这块采集卡进行采集。也就是说想我的程序能够使用任何一块采集卡?可以吗?

解决方案 »

  1.   

    采集卡在windows系统中,现在大概有两个标准。一个就是vfw 一个就是directshow. 市面上99%的采集卡都支持这两种标准。
       所以你要想你的程序能够使用绝大部分的采集卡是没有问题的。如果你要求不高,仅仅是要监控,抓图等基本操作  我建议你用vfw 。几行代码就搞定。 下面是例子;
     下面就是例子:(需要头文件vfw,c++builder里面已经自带,delphi 可以在网上下载;
     如果 你认为麻烦, 你可以自己对cap32.dll申明这几个函数,如果需要 我可以email给你);
    //其它的功能这里就不一一阐述 
       m_hCapWnd:Hwnd;
    procedure TForm1.create(Sender: TObject);  // 视频扑获处理
    var
       dwSize:Integer;
       setBmp : BITMAPINFO ;
    begin   
       try
          m_hCapWnd:=capCreateCaptureWindow('',
            WS_CHILD or WS_VISIBLE,0,0,AviPanel.width,AviPanel.height,AviPanel.Handle,0);
                                  //avipanel 就是你要显示的视频窗口的;可以是form ,panel等
                       //AviPanel.width就是显示的宽度,AviPanel.height显示的高度;
          if(capDriverConnect(m_hCapWnd,0)) then
          begin
            // capOverlay(m_hCapWnd,true);   //普通的摄像头不能用overlay的方式 主意;
             capPreviewRate(m_hCapWnd,30);  //设置帧率为30
             capPreview(m_hCapWnd,true);    // preview方式显示
             dwSize:=capGetVideoFormatSize(m_hCapWnd);   
             capGetVideoFormat(m_hCapWnd,@setBmp, dwSize);
             setBmp.bmiHeader.biWidth:=352;    //这个就是设置你捕捉图片的大小了 宽度 :)
             setBmp.bmiHeader.biHeight:=288; //这个就是设置你捕捉图片的大小了 高度 :)
             capSetVideoFormat(m_hCapWnd,@setBmp,dwSize);  
          end;
       except
       end;
    end;procedure Tform1.capbmp;
    begin
          capEditCopy(m_hCapWnd);   //把图像拷到剪贴板
          Image1.picture.bitBmp.LoadFromClipboardFormat(CF_BITMAP,Clipboard.GetAsHandle(CF_BITMAP), 0);
         // 这时在image1里面的就是你需要的图片;
    end;procedure TForm1.close(Sender: TObject; var Action: TCloseAction);// 视频扑获处理
    begin
        capDriverDisconnect(m_hCapWnd);// vfw 里面的标准函数
    end;在网上下在一个vfw.pas 就是对微软video for windows的申明文件。 
       收索一下  很多地方有  如果需要 我可以email给你。。
      如果你用 directshow 那么我建议你用dspack。  同样 很多地方有下载。
    如果需要 同样也可以email给你
      

  2.   

    blackbook(油条) 
    不行呀!
    我的计算机上安装了天敏卡,计算机提示“在使用另一个视频应用程序,如DVD、视频会议、视频编辑、TV观测仪或Windows德WebTV时,您不能使用这个设备。”
    但是我没有用这些东西呀?!
    怎么回事???