PythonでHIDからiSerialNumberを取得

USBデバイスからiSerialNumberを取得するべく悪戦苦闘していた。

kernelのDeviceIoControlで何とか取得することには成功したのだけど、さらに調べてみるとhid.dllにHidD_GetSerialNumberStringという関数があるのを発見。

hid = windll.hid
buf = c_ubyte * 0xff
buf = buf()
print hid.HidD_GetSerialNumberString(handle, byref(buf), 0xff)
print buf[0:]

こんな感じでOK。Pythonの場合。バッファは適当。最大128ワイドキャラクタとか書いてあったけど。

HidD_GetSerialNumberString(MSDN)


新しく会社作りました!

コメントをどうぞ