2025 尋找 macOS HID 別再浪費時間 ! 用 Python 讓你秒列出所有裝置


macOS HID ! 你是否曾經想過要抓出你電腦上接了哪些裝置?像是鍵盤、滑鼠、遊戲手把,甚至是一些特殊用途的設備,例如條碼掃描器或 RFID 讀卡器,其實都屬於 HID(Human Interface Device)裝置。這篇文章將帶你一步一步地使用 Python,在 macOS 系統上列出這些 HID 裝置,並在 Visual Studio Code (VSCode) 環境中進行開發。

macOS HID

什麼是 HID?

HID(Human Interface Device)是一種 USB 裝置類型,設計來與人互動。常見的 HID 裝置包括:

  • 鍵盤
  • 滑鼠
  • 觸控筆/手寫板
  • 遊戲控制器
  • 某些感應器、RFID 閱讀器

這類裝置有個特性,就是不需要安裝額外驅動程式,系統本身就能辨識並支援它們。

為什麼用 Python?

Python 是一個簡潔、易學又有強大套件生態系的語言。使用 Python 操作 HID 裝置有以下優勢:

  • hidapi 套件支援跨平台(Windows、Linux、macOS)
  • 只需幾行程式碼就能快速讀取裝置清單
  • 適合快速原型開發與自動化測試
  • 如果你是開發者、Maker,甚至只是單純對硬體有興趣的人,Python 是一個非常棒的起點。

設定環境

安裝 Python 套件與工具

在開始編程之前,請確保已完成以下準備工作:

brew install hidapi         # Install the C-level hidapi library
pip install hidapi          # Install the Python bindings

使用 VSCode 建立專案

  • 建立資料夾,例如 hid_scanner
  • 在 VSCode 中開啟該資料夾
  • 新增 list_hid_devices.py 檔案

程式碼

以下是完整程式碼 :

import hid

def list_hid_devices():
    devices = hid.enumerate()
    if not devices:
        print("No HID devices found.")
        return

    for idx, device in enumerate(devices):
        print(f"Device {idx + 1}:")
        print(f"  Vendor ID: {hex(device['vendor_id'])}")
        print(f"  Product ID: {hex(device['product_id'])}")
        print(f"  Manufacturer: {device.get('manufacturer_string')}")
        print(f"  Product: {device.get('product_string')}")
        print(f"  Serial Number: {device.get('serial_number')}")
        print(f"  Path: {device['path'].decode('utf-8') if isinstance(device['path'], bytes) else device['path']}")
        print(f"  Interface Number: {device.get('interface_number')}")
        print("-" * 40)

if __name__ == "__main__":
    list_hid_devices()

程式碼解說

這段程式碼的重點在於:

  • 使用 hid.enumerate() 取得所有連接的 HID 裝置清單
  • 利用 for 迴圈逐一列出裝置資訊
  • vendor_idproduct_id 是用來辨識裝置的基本參數
  • manufacturer_stringproduct_string 通常包含裝置品牌與名稱
  • path 是裝置的內部辨識路徑,與讀寫裝置時有關

這些資訊能幫你快速瞭解目前系統上有哪些 HID 裝置接入,並可作為後續通訊或控制的依據。

macOS HID 所有裝置

下面是在 macOS 上執行 list_hid_devices.py 的輸出可能的結果行:

Device 1:
  Vendor ID       : 0x05ac
  Product ID      : 0x0250
  Manufacturer    : Apple Inc.
  Product         : Apple Internal Keyboard / Trackpad
  Serial Number   : XYZ1234567
  Path            : IOService:/AppleACPIPlatformExpert/...
  Interface Number: 0
----------------------------------------
Device 2:
  Vendor ID       : 0x046d
  Product ID      : 0xc534
  Manufacturer    : Logitech
  Product         : USB Receiver
  Serial Number   : None
  Path            : IOService:/AppleUSB20HubPort@1a000000/...
  Interface Number: 1
----------------------------------------
Device 3:
  Vendor ID       : 0x1a2b
  Product ID      : 0x1f2e
  Manufacturer    : Generic Manufacturer
  Product         : RFID Reader
  Serial Number   : A1B2C3D4E5
  Path            : IOService:/AppleUSB20HubPort@1d000000/...
  Interface Number: 2
----------------------------------------

結論

透過 Python 搭配 hidapi,你可以很輕鬆地列出並檢查所有 HID 裝置,這對於開發硬體應用、除錯設備連接,甚至做自動化測試都有極大的幫助。尤其是在 macOS 上,不需要裝任何驅動,就可以跑起來。

下一步你可以嘗試進一步 與 HID 裝置溝通(讀寫資料),甚至用 GUI 建立簡單控制面板。