c# - 通过用于 Symbol 条码扫描仪 DS4208 的 SNAPI.dll API 捕获图像

标签 c# barcode-scanner

我想通过 SNAPI API 从 Symbol(目前为 Zebra)条码扫描仪、型号 DS4208(我们还使用 Zebra 的另一个但兼容的型号)捕获图像。 条形码捕获/识别工作得很好,但看起来 SnapiDLL.SNAPI_SnapShot(hScanner) 调用无法正常工作:根本没有收到 WM_XFERSTATUS 消息。 这是小而简化的代码片段:

// Set image format
short[] parms = new short[2] { (short)SnapiParamIds.ImageFileType, (short)SnapiImageTypes.Jpeg };
var retCode = SnapiDLL.SNAPI_SetParameters(parms, 2, _devHandles[0]);
Debug.WriteLine($"SNAPI_SetParameters retCode={retCode}");
Application.DoEvents();
Thread.Sleep(50);

retCode = SnapiDLL.SNAPI_SnapShot(_devHandles[0]);
Debug.WriteLine($"SNAPI_SnapShot retCode={retCode}");
Application.DoEvents();
Thread.Sleep(50);

retCode = SnapiDLL.SNAPI_PullTrigger(_devHandles[0]);
Debug.WriteLine($"SNAPI_PullTrigger retCode={retCode}");
Application.DoEvents();
Thread.Sleep(50);

返回代码始终为 0(即没有错误),但我的消息处理程序没有收到 WM_XFERSTATUS 消息。

附注来自 Zebra SDK 的 C# 应用程序使用 CoreScanner 驱动程序和 OCX,运行良好并且能够捕获图像和视频。但由于某些原因我想避免安装 CoreScanner 驱动程序;对于条形码扫描,小而简单的 SNAPI.dll 工作得很好,我希望它也能用于图像捕获 - 可能,我做错了什么......

P.P.S。伙计们,如果您没有使用符号条形码扫描仪和 SNAPI 的经验,并且无法提供工作片段,请不要发表评论! p>

最佳答案

联系 Zebra 技术支持(他们是 Symbol/Motorola 条码扫描仪业务的后继者)后,我发现 x64 操作系统的 SNAPI.dll 中的成像/视频功能已损坏(但大多数其余 API 调用都可以正常工作)适本地)。不幸的是,Zebra 不再支持 SNAPI,我应该使用 Zebra 的 CoreScanner API。好消息是:这个 API 工作正常,正如它应该的那样。这不是一个好消息:我应该使用 Zebra 的附加安装包。

关于c# - 通过用于 Symbol 条码扫描仪 DS4208 的 SNAPI.dll API 捕获图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58562096/

相关文章:

c# - 以下示例代码中 AttemptController 中的静态字段是什么意思?

ios - 如何检查扫描的二维码是否包含除数字之外的任何内容

image-processing - 条码阅读器程序 : barcode Identification methods

Android:如何将通过 USB 连接的外部条码扫描器设备集成到 Android 应用程序

c# - 在动态方法中使用正则表达式

c# - C# 是否支持结构中的位字段(位打包)?

io - 是否可以在后台将条形码扫描到进程中?

Android:程序类型已经存在:com.google.zxing.BarcodeFormat

c# - MVC/MVP winforms 应用程序示例(重要)

c# - 简单地将 Entity Framework Core 添加到基本的 Azure 函数应用程序会导致错误