【问题标题】:Program in c or Perl to find out which port of USB is being used?用 c 或 Perl 编写程序以找出正在使用的 USB 端口?
【发布时间】:2012-01-21 18:42:12
【问题描述】:

我有什么方法可以使用 C 或 Perl 编程找出特定设备是否插入 USB 端口以及插入的 USB 端口号?

【问题讨论】:

  • 您必须意识到,至少对于 C,这是高度特定于平台的。请至少指定平台。
  • 答案将高度依赖于操作系统和平台。需要更多信息。
  • 坦率地说对此没有答案...我只能说我将在 Windows 7/vista 上使用相同的内容。我面临的问题是我有一个医疗设备。每次我将它插入 USB 端口(与前一个端口不同)时,端口号都会改变......因此我必须去更改我的设备软件中的端口选项。因此,只要我有一个 exe 程序,它可以给我连接该设备的端口……会让我的生活更简单。

标签: c perl


【解决方案1】:

是的。有一些便携的方法,比如使用libusb 枚举所有设备。

此外,您还可以使用操作系统特定的功能,例如 Linux 上的 devfslsusb,或 Windows 上的注册表或 WMI。

lsusb 命令会显示所有连接的设备。您可以在 sysfs 目录/sys/bus/usb/devices/ 中找到相同的信息。

在 Windows 上,您可以在 HKLM\System\CurrentControlSet\Enum\USBuse WMI 上挖掘注册表。 WMI 不仅可以通过 Powershell 访问,您还可以通过 use Perl 访问。

但是,首选方式是使用libusb,因为它具有可移植性。

【讨论】:

  • @daxim, @werewindle:谢谢大家,我很快就会开始做这件事,并让你们更新。
【解决方案2】:

如果您使用 linux,您可以从您的脚本中调用 lsusb

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多