我想通过 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/