代码之家  ›  专栏  ›  技术社区  ›  Alex F

如何识别USB读卡器

  •  0
  • Alex F  · 技术社区  · 5 年前

    我试图以编程方式检测USB读卡器的存在,它将自己标识为键盘设备。在设备管理器中,它如下所示:

    Device Manager

            ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(@"Select * from Win32_Keyboard");
            ManagementObjectCollection keyboards = managementObjectSearcher.Get();
    
            foreach (ManagementBaseObject keyboard in keyboards)
            {
                Console.WriteLine();
                foreach (var property in keyboard.Properties)
                {
                    Console.WriteLine(string.Format("{0}: {1}", property.Name, property.Value));
                }
            }
    

    与设备管理器中一样,输出仅因设备ID不同而不同:

    Availability:
    Caption: Enhanced (101- or 102-key)
    ConfigManagerErrorCode: 0
    ConfigManagerUserConfig: False
    CreationClassName: Win32_Keyboard
    Description: USB Input Device
    DeviceID: USB\VID_04B3&PID_3025\5&DC4A972&0&3
    ErrorCleared:
    ErrorDescription:
    InstallDate:
    IsLocked:
    LastErrorCode:
    Layout: 00000409
    Name: Enhanced (101- or 102-key)
    NumberOfFunctionKeys: 12
    Password:
    PNPDeviceID: USB\VID_04B3&PID_3025\5&DC4A972&0&3
    PowerManagementCapabilities:
    PowerManagementSupported: False
    Status: OK
    StatusInfo:
    SystemCreationClassName: Win32_ComputerSystem
    SystemName: ALEX19
    
    Availability:
    Caption: Enhanced (101- or 102-key)
    ConfigManagerErrorCode: 0
    ConfigManagerUserConfig: False
    CreationClassName: Win32_Keyboard
    Description: USB Input Device
    DeviceID: USB\VID_0804&PID_0040\5&DC4A972&0&6
    ErrorCleared:
    ErrorDescription:
    InstallDate:
    IsLocked:
    LastErrorCode:
    Layout: 00000409
    Name: Enhanced (101- or 102-key)
    NumberOfFunctionKeys: 12
    Password:
    PNPDeviceID: USB\VID_0804&PID_0040\5&DC4A972&0&6
    PowerManagementCapabilities:
    PowerManagementSupported: False
    Status: OK
    StatusInfo:
    SystemCreationClassName: Win32_ComputerSystem
    SystemName: ALEX19
    

    但是,Windows设置将此设备显示为USB读卡器:

    Settings

    注:此答案 How do I get all the smart card readers on my system via WMI? SmartCardReader 类,但它不适用于我,读卡器无法识别。

    0 回复  |  直到 5 年前