4

Windows 7 上的 WIA 2 未检测到我的相机,而 Windows XP 上的 WIA 1 检测到它。

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

我的相机是:

华硕usb2网络摄像头。

德尔福返回消息:

(像这样)没有指定类型的任何 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;
4

1 回答 1

-1

我最近在使用 WIA 和 Win7 时也有类似的经历。

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

Delphi Basics - DirectX 网络摄像头捕获

我不记得我最初是如何找到这个项目的,但在 Win7 下,即使是我在办公室里发现的较旧的网络摄像头,它也能正常工作。

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

(编辑)我的 WIA 问题源于网络摄像头制造商在 Win7 下不支持 WIA 或 Twain。

于 2012-06-14T15:46:44.287 回答