gpt4 book ai didi

c# - WIA: device.ExecuteCommand(CommandID.wiaCommandTakePicture);返回空

转载 作者:行者123 更新时间:2023-11-30 13:05:26 25 4
gpt4 key购买 nike

有一个我一直用来远程控制数码相机的旧程序,以便自动拍摄照片并将它们传输到 PC。程序基于 WIA,据我所知,它最初是在 Windows XP 上设计和使用的。

最近将其从文件中取出,并一直在尝试使用同一台相机使其在 64 位 Windows 7 上运行。定位相机并触发捕捉工作没有问题。但是在执行这一行时:

//device of type WIA.Device
Item item = device.ExecuteCommand(CommandID.wiaCommandTakePicture);

null 被返回,让我没有图像引用来传输。一直在上下寻找解决方案,但一直无法提出任何建议。找到另一个 QA 站点,其中的答案建议使用:

//manager of type WIA.DeviceManager, device of type WIA.Device
manager.RegisterEvent(EventID.wiaEventItemCreated, device.DeviceID);
manager.OnEvent += new _IDeviceManagerEvents_OnEventEventHandler(manager_OnEvent);

一个人会在图像捕获后收到包含 itemID 的事件。已经试过了,没有引发任何事件。

最佳答案

根据我的经验,WIA 有许多的怪异之处。我还为 Item item = device.ExecuteCommand(CommandID.wiaCommandTakePicture); 返回的 null 而苦恼,虽然我在 Windows 7 中开发,但我的机器是 32 位的。

在我的机器上,解决方案是监听原始问题中提到的事件。如果这不起作用,请尝试使用通配符设备 ID 注册事件:

manager.RegisterEvent(EventID.wiaEventItemCreated, Miscellaneous.wiaAnyDeviceID);
device.ExecuteCommand(CommandID.wiaCommandTakePicture);

我还发现我需要在每个设备命令后重新注册事件,否则它会停止触发。

关于c# - WIA: device.ExecuteCommand(CommandID.wiaCommandTakePicture);返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4823897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com