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;
答案 0 :(得分:0)
我最近与WIA和Win7有类似的经历。
我最终使用的是DirectX解决方案。
Delphi Basics - DirectX webcam capture
我不记得我最初是如何找到这个项目的,但是在Win7下它甚至可以用于我在办公室里找到的旧网络摄像头。
我建议您在下载文件中查看Demo3,因为它具有我需要的最好,最简单的示例。 YMMV。
(编辑)我的WIA问题延伸到网络摄像头制造商在Win7下不支持WIA或Twain这一事实。