Softoed, вот патченая функция из примера AHKHID Example 2.ahk , она даёт понять, как использовать эти фнкции.
InputMsg(wParam, lParam) {
Local r, h
Critical ;Or otherwise you could get ERROR_INVALID_HANDLE
;Get device type
r := AHKHID_GetInputInfo(lParam, II_DEVTYPE)
If (r = -1)
OutputDebug %ErrorLevel%
; XYZ here
DeviceHandle := AHKHID_GetInputInfo(lParam, II_DEVHANDLE)
If (r = RIM_TYPEMOUSE) {
GuiControl,, lbxInput, % ""
; XYZ here
; . " HID Name: " AHKHID_GetDevName(AHKHID_GetInputInfo(lParam, II_DEVHANDLE), True)
. " HID info [ "
. " HID Name: " AHKHID_GetDevName(DeviceHandle, True)
. " Vendor: " AHKHID_GetDevInfo(DeviceHandle, DI_HID_VENDORID, True)
. " ProductId: " AHKHID_GetDevInfo(DeviceHandle, DI_HID_PRODUCTID, True)
. " VersionNumber: " AHKHID_GetDevInfo(DeviceHandle, DI_HID_VERSIONNUMBER, True)
. " UsagePage: " AHKHID_GetDevInfo(DeviceHandle, DI_HID_USAGEPAGE, True)
. " Usage: " AHKHID_GetDevInfo(DeviceHandle, DI_HID_USAGE, True)
. " ] "
. " Flags: " AHKHID_GetInputInfo(lParam, II_MSE_FLAGS)
. " ButtonFlags: " AHKHID_GetInputInfo(lParam, II_MSE_BUTTONFLAGS)
. " ButtonData: " AHKHID_GetInputInfo(lParam, II_MSE_BUTTONDATA)
. " RawButtons: " AHKHID_GetInputInfo(lParam, II_MSE_RAWBUTTONS)
. " LastX: " AHKHID_GetInputInfo(lParam, II_MSE_LASTX)
. " LastY: " AHKHID_GetInputInfo(lParam, II_MSE_LASTY)
. " ExtraInfo: " AHKHID_GetInputInfo(lParam, II_MSE_EXTRAINFO)
} Else If (r = RIM_TYPEKEYBOARD) {
GuiControl,, lbxInput, % ""
; XYZ here
; . " HID Name: " AHKHID_GetDevName(AHKHID_GetInputInfo(lParam, II_DEVHANDLE), True)
. " HID info [ "
. " HID Name: " AHKHID_GetDevName(DeviceHandle, True)
. " Vendor: " AHKHID_GetDevInfo(DeviceHandle, DI_HID_VENDORID, True)
. " ProductId: " AHKHID_GetDevInfo(DeviceHandle, DI_HID_PRODUCTID, True)
. " VersionNumber: " AHKHID_GetDevInfo(DeviceHandle, DI_HID_VERSIONNUMBER, True)
. " UsagePage: " AHKHID_GetDevInfo(DeviceHandle, DI_HID_USAGEPAGE, True)
. " Usage: " AHKHID_GetDevInfo(DeviceHandle, DI_HID_USAGE, True)
. " ] "
. " MakeCode: " AHKHID_GetInputInfo(lParam, II_KBD_MAKECODE)
. " Flags: " AHKHID_GetInputInfo(lParam, II_KBD_FLAGS)
. " VKey: " AHKHID_GetInputInfo(lParam, II_KBD_VKEY)
. " Message: " AHKHID_GetInputInfo(lParam, II_KBD_MSG)
. " ExtraInfo: " AHKHID_GetInputInfo(lParam, II_KBD_EXTRAINFO)
} Else If (r = RIM_TYPEHID) {
h := AHKHID_GetInputInfo(lParam, II_DEVHANDLE)
r := AHKHID_GetInputData(lParam, uData)
GuiControl,, lbxInput, % ""
. " Vendor ID: " AHKHID_GetDevInfo(h, DI_HID_VENDORID, True)
. " Product ID: " AHKHID_GetDevInfo(h, DI_HID_PRODUCTID, True)
. " UsPg/Us: " AHKHID_GetDevInfo(h, DI_HID_USAGEPAGE, True) . "/" . AHKHID_GetDevInfo(h, DI_HID_USAGE, True)
. " Data: " Bin2Hex(&uData, r)
}
SendMessage, 0x018B, 0, 0,, ahk_id %hlbxInput%
SendMessage, 0x0186, ErrorLevel - 1, 0,, ahk_id %hlbxInput%
}
честно говоря, до реализации моей идеи дело пока не дошло, я остановился на том, что разобрался с ahk и этой либой.