我想通过Windows.Devices.PointOfService命名空间使用带有Windows 10(Build 15063)的条形码扫描程序。扫描仪是Datalogic Quickscan QD2430,我尝试了所有RS-232和键盘模式。
我使用了官方示例应用程序https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/BarcodeScanner但没有运气。它可以检测设备,但它绝对是内置网络摄像头(HP笔记本电脑)。
我尝试修改源,即DeviceHelpers的GetFirstDeviceAsync函数https://github.com/Microsoft/Windows-universal-samples/blob/master/SharedContent/cs/DeviceHelpers.cs。
DeviceInformation.FindAllAsync也仅返回相机的信息。
string selector = BarcodeScanner.GetDeviceSelector(PosConnectionTypes.All);
DeviceInformation.FindAllAsync(selector);
它什么都不返回。
DeviceInformation.FindAllAsync(DeviceClass.ImageScanner);
它返回每个连接,我认为以前连接但当前脱机的设备。我试图按名称过滤扫描仪。也有很多过滤结果,但convertAsync函数为所有例外返回null,它抛出异常"连接到系统的设备无法运行。 (HRESULT异常:0x8007001F)"。
DeviceInformationCollection infos = await DeviceInformation.FindAllAsync(DeviceClass.All);
foreach(DeviceInformation info in infos)
{
if (info.Name.ToUpper().Contains("BARCODE"))
{
T scanner = await convertAsync(info.Id);
if (scanner != null)
{
return scanner;
}
}
}
答案 0 :(得分:0)
Datalogic Quickscan QD2430不在list of devices supported by Windows.Devices.PointOfService。
要求Datalogic提供支持Windows.Devices.PointOfService的设备驱动程序,或将扫描程序更改为支持列表中描述的扫描程序。
或者,根据Point of Service (POS) of Windows Driver Kit创建您自己的设备驱动程序。