首页 > 解决方案 > 通过用于 Symbol 条码扫描仪 DS4208 的 SNAPI.dll API 捕获图像

问题描述

我想通过 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 中的 PS C# 应用程序使用 CoreScanner 驱动程序和 OCX,运行良好,能够捕获图像和视频。但出于某些原因,我想避免安装 CoreScanner 驱动程序;对于条形码扫描来说,小而简单的 SNAPI.dll 工作得很好,我希望它也能用于图像捕获 - 可能,我做错了什么......

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

标签: c#barcode-scanner

解决方案


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


推荐阅读