我正在尝试使用LibUSBDotNet
库(here it is)获取加密狗(GSM调制解调器)的详细信息。
以下是我的尝试
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LibUsbDotNet;
using LibUsbDotNet.Descriptors;
using LibUsbDotNet.DeviceNotify;
using LibUsbDotNet.Info;
using LibUsbDotNet.LibUsb;
using LibUsbDotNet.LudnMonoLibUsb;
using LibUsbDotNet.Main;
using LibUsbDotNet.WinUsb;
namespace LibUsbDotNet_Test1
{
class Program
{
static void Main(string[] args)
{
//RetrieveUSBDevices(12d1, 140c);
}
public static void RetrieveUSBDevices(int vid, int pid)
{
var usbFinder = new UsbDeviceFinder(vid, pid);
var usbDevices = new UsbRegDeviceList();
var en = usbDevices.GetEnumerator();
while (en.MoveNext())
{
Console.WriteLine(en.ToString());
}
}
}
}
不幸的是,我似乎需要将产品ID(PID)和Vensor ID(VID)作为整数传递。但我的PID和VID包含字母!请查看下面的图片,其中显示了有关我的设备的详细信息。
在这种情况下,如何传递PID和VID?或者我做错了什么?我需要打印设备描述并获取加密狗的“端口名称”,这就是为什么我要做所有这些来识别它。
答案 0 :(得分:1)
似乎VendorID和ProductID是十六进制数字,但您使用的库需要整数。
string productID = "140c";
int pid = Convert.ToInt32(productID, 16);
// or if you don't like "base 16" and want to have self-documenting code:
pid = Int32.Parse(productID, System.Globalization.NumberStyles.HexNumber);