Windows 7上的WIA 2 - Delphi

时间:2012-05-06 17:28:17

标签: delphi windows-7 camera wia acquisition

Windows 7上的WIA 2在Windows XP上的WIA 1检测到时没有检测到我的相机。

我尝试以管理员身份运行我的程序。

我的相机是:

华硕usb2网络摄像头。

Delphi返回消息:

  

(像这样)没有指定类型的任何wia设备

  

在地址......中访问违规......模块......

我使用此代码:

procedure TForm1.Button9Click(Sender: TObject);
Const
   wiaFormatBMP ='{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}';
var
   CommonDlg: ICommonDialog;
   AImage: IImageFile;
   ImagePath: String;
   DeviceManager1 :iDeviceManager;
begin
   CommonDlg := createOleObject('WIA.CommonDialog') as ICommonDialog;
   DeviceManager1 := createOleObject('WIA.DeviceManager') as  iDeviceManager;
   edit1.Text:=  inttostr( DeviceManager1.DeviceInfos.Count);
   AImage := CommonDlg.ShowAcquireImage(UnspecifiedDeviceType,UnspecifiedIntent,
                                        MaximizeQuality,wiaFormatBMP,true,False,True);
   ImagePath := 'C:\temp\test.bmp';
   AImage.SaveFile(ImagePath);
end;

1 个答案:

答案 0 :(得分:0)

我最近与WIA和Win7有类似的经历。

我最终使用的是DirectX解决方案。

Delphi Basics - DirectX webcam capture

我不记得我最初是如何找到这个项目的,但是在Win7下它甚至可以用于我在办公室里找到的旧网络摄像头。

我建议您在下载文件中查看Demo3,因为它具有我需要的最好,最简单的示例。 YMMV。

(编辑)我的WIA问题延伸到网络摄像头制造商在Win7下不支持WIA或Twain这一事实。