Jump to content
Sign in to follow this  
mikell

_WinAPI_RegisterRawInputDevices

Recommended Posts

mikell

Hello
I need help about _WinAPI_RegisterRawInputDevices (from WinAPIEx.au3)
The helpfile for this func says

_WinAPI_RegisterRawInputDevices ( $pDevice [, $iCount] )
$pDevice = "A pointer to an array of $tagRAWINPUTDEVICE structures"  
$iCount = "The number of entries in the array"

If I register mouse and keyboard separately, it works :

$tRID_M = DllStructCreate($tagRAWINPUTDEVICE)
DllStructSetData($tRID_M, 'UsagePage', 0x01) ; Generic Desktop Controls
DllStructSetData($tRID_M, 'Usage', 0x02) ; Mouse
DllStructSetData($tRID_M, 'Flags', $RIDEV_INPUTSINK)
DllStructSetData($tRID_M, 'hTarget', $hForm)
$pRID_M = DllStructGetPtr($tRID_M)

$tRID_KD = DllStructCreate($tagRAWINPUTDEVICE)
DllStructSetData($tRID_KD, 'usUsagePage', 0x01)
DllStructSetData($tRID_KD, 'usUsage', 0x06) ; Keyboard
DllStructSetData($tRID_KD, 'dwFlags', $RIDEV_INPUTSINK) 
DllStructSetData($tRID_KD, 'hwndTarget', $hGUI)
$pRID_KD = DllStructGetPtr($tRID_KD)

; Register HID input to obtain row input from keyboard
_WinAPI_RegisterRawInputDevices($pRID_KD)
; Register HID input to obtain row input from mouse
_WinAPI_RegisterRawInputDevices($pRID_M)

But I can't get to register them together (using $iCount = 2) , as this MS example does :

http://msdn.microsoft.com/en-us/library/windows/desktop/ms645546%28v=vs.85%29.aspx#example_2

So can you please tell me how to translate this code to autoit to make this 'array of structures' ? I tried several ways but none worked

Thanks
 

 

Share this post


Link to post
Share on other sites
guinness

Could you show what you tried?


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
mikell

Because of the word 'array' I tried this

Global $rid[2] = [$tRID_M, $tRID_KD]
_RegisterRawInputDevices($rid, 2, $iRID_M)

Didn't work (of course), so I tried things like this

$rid = DllStructCreate('STRUCT;....;ENDSTRUCT;')
DllStructSetData($rid, 1, $tRID_M, 1)
DllStructSetData($rid, 1, $tRID_KD, 2)
$pRI = DllStructGetPtr($rid)
_RegisterRawInputDevices($pRI, 2, $iRID_M)

Also didn't work and it's normal because I don't know the syntax to use (which is what I'm asking for)

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×