2012-01-20 37 views
1

有沒有什麼辦法可以通過C或Perl編程找出某個特定設備是否插入USB端口以及插入了哪個USB端口號?使用c或Perl編程以找出正在使用哪個USB端口?

+2

您必須認識到,至少對於C來說,這是高度特定於平臺的。請至少指定平臺。 – unwind

+2

答案將會是高度OS和平臺特定的。更多信息將需要。 –

+0

坦率地說,沒有人能回答這個問題......我只能說我將在windows 7/vista上使用相同的功能。我面臨的問題是我有一個醫療設備。每次我將它插入一個USB端口(與上一個不同)時,端口號會發生變化...因此我必須去更改設備軟件中的端口選項。所以只是如果我有一個EXE,將我的設備連接到的端口給我...將使我的生活更簡單。 –

回答

0

如果您使用的是Linux,您可以從腳本中調用lsusb

4

是的。有像使用libusb枚舉所有設備的便攜方式。

此外,您可以使用操作系統特定的功能,如Linux上的devfslsusb或Windows上的註冊表或WMI。

命令lsusb顯示所有連接的設備。您可以在sysfs目錄/sys/bus/usb/devices/中找到相同的信息。

在Windows上,您可以通過註冊表HKLM\System\CurrentControlSet\Enum\USBuse WMI進行挖掘。 WMI不僅可以通過Powershell訪問,也可以通過use Perl訪問。

但是,首選的方法是使用libusb,因爲它的便攜性。

+0

@ daxim,@werewindle:謝謝你們,我很快就會開始並保持更新。 –