通过 SNAPI.dll API 为 Symbol 条码扫描器 DS4208 捕获图像

Image capturing via SNAPI.dll API for Symbol barcode scanner DS4208

我想通过 SNAPI API 从 Symbol(目前为 Zebra)条码扫描器,型号 DS4208(我们还使用 Zebra 的另一个兼容型号)捕获图像。 条形码 capturing/recognition 工作得很好,但看起来 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);

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

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

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

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