mikell Posted May 16, 2013 Share Posted May 16, 2013 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 Link to comment Share on other sites More sharing options...
guinness Posted May 17, 2013 Share Posted May 17, 2013 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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
mikell Posted May 17, 2013 Author Share Posted May 17, 2013 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) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now