Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import win32api
- import raw_input as ri
- from ctypes import cast, c_char, byref, sizeof, POINTER
- from ctypes.wintypes import *
- from logging import getLogger
- #####################################################################################
- _log = getLogger("")
- #####################################################################################
- def main () :
- nDevices = INT()
- if 0 != ri.GetRawInputDeviceList(0, byref(nDevices), sizeof(ri.RAWINPUTDEVICELIST)) :
- raise ri.RawInputError(win32api.FormatMessage(
- win32api.GetLastError())
- )
- devlist = (ri.RAWINPUTDEVICELIST * nDevices.value)()
- if -1 == ri.GetRawInputDeviceList(devlist, byref(nDevices), sizeof(ri.RAWINPUTDEVICELIST)) :
- raise ri.RawInputError(win32api.FormatMessage(
- win32api.GetLastError())
- )
- rdi = ri.RID_DEVICE_INFO()
- rdi.cbSize = sizeof(ri.RID_DEVICE_INFO)
- for d in devlist :
- uSize = UINT()
- ri.GetRawInputDeviceInfo(d.hDevice, ri.RIDI_DEVICENAME, 0, byref(uSize))
- if 0 < uSize.value :
- name = (c_char * uSize.value)()
- ri.GetRawInputDeviceInfo(d.hDevice, ri.RIDI_DEVICENAME, name, byref(uSize))
- _log.info(name.value)
- else : _log.info("0x{0:08X}".format(d.hDevice))
- uSize.value = rdi.cbSize
- ri.GetRawInputDeviceInfo(d.hDevice, ri.RIDI_DEVICEINFO, byref(rdi), byref(uSize))
- if ri.RIM_TYPEMOUSE == rdi.dwType :
- _log.info("ID for Mouse: %d", rdi.mouse.dwId)
- _log.info("Number of Buttons: %d", rdi.mouse.dwNumberOfButtons)
- _log.info("Sample rate(Number of data points): %d", rdi.mouse.dwSampleRate)
- _log.info("**************************")
- if ri.RIM_TYPEKEYBOARD == rdi.dwType :
- _log.info("Keyboard Mode: %d", rdi.keyboard.dwKeyboardMode)
- _log.info("Number of function keys: %d", rdi.keyboard.dwNumberOfFunctionKeys)
- _log.info("Number of indicators: %d", rdi.keyboard.dwNumberOfIndicators)
- _log.info("Number of keys total: %d", rdi.keyboard.dwNumberOfKeysTotal)
- _log.info("Type of the keyboard: %d", rdi.keyboard.dwType)
- _log.info("Subtype of the keyboard: %d", rdi.keyboard.dwSubType)
- _log.info("***********************")
- if ri.RIM_TYPEHID == rdi.dwType :
- _log.info("Vendor Id: %d", rdi.hid.dwVendorId)
- _log.info("Product Id: %d", rdi.hid.dwProductId)
- _log.info("Version No: %d", rdi.hid.dwVersionNumber)
- _log.info("Usage for the device: %d", rdi.hid.usUsage)
- _log.info("Usage Page for the device: %d", rdi.hid.usUsagePage)
- _log.info("***********************")
- #####################################################################################
- if "__main__" == __name__ :
- main()
- #################################### End Of File ####################################
Advertisement
Add Comment
Please, Sign In to add comment