Lachee Posted April 13, 2014 Posted April 13, 2014 Hello there, I have recently downloaded BOLOPatch v4.00 for Just Cause 2 and decided to make a hotkey application for it so I can use key combinations with my gamepad in Just Cause 2 to activate certain cheats. The joystick reading is going well, however I have come to a road block. I cannot for the life of me get ControlClick to work on the checkboxes for the cheats! The main problem is that the checkboxes seem to be inside a ListBox element, and I cannot get the controlID of individual items. I tried using AutoIt Window Info and Winspector Spy, but neither were a help. How can I get it to work? Here is the screen shots and my current code: expandcollapse popup;#RequireAdmin Local $joy,$coor,$h,$s,$msg $joy = _JoyInit() ;___________________________ KOWN COMBOS ____________________________________ ; TRIANGLE + L1 = 24 (Set to detach multi hooks) ; START + L1 = 144 (Open Steam Window) ; START + R1 = 160 (Take screen shot [del] ) ; L1 + R1 = 48 (go into slow motion [q] ) ; Select + Start = 192 (close this program) if(WinExists("[CLASS:Just Cause 2]")) Then ;Run("C:\Users\Lachee\Desktop\BOLOPatch4.00.exe") ;Run("C:\Users\Lachee\Desktop\SLOMOv2.exe") $lastCode = 0 while 1 ;Gets the button flag of the buttons from joystick 0 (buttons are index 7) $coords = _GetJoy($joy,0) $bFlag = $coords[7] if($bFlag <> $lastCode AND $bFlag <> 0) Then ConsoleWrite("Input: " & $bFlag & @CRLF) Switch($bFlag) Case 24 ConsoleWrite("Output: TRIANGLE + L1 (Multihook Toggle)" & @CRLF) ;This does not seem to work, no matter the coords or the controlID's I stick in! $var = ControlClick("BOLOPatch v4.00","","[CLASS:WindowsForms10.LISTBOX.app.0.378734a; INSTANCE:1]","left",1,8,52) ConsoleWrite("Output: " & $var & @CRLF) Case 144 ConsoleWrite("Output: START + L1 [Shift+Tab] (steam overlay)" & @CRLF) Case 160 ConsoleWrite("Output: START + R1 [del] (steam screenshot)" & @CRLF) Case 48 ConsoleWrite("Output: R1 + L1 [q] (slow motion)" & @CRLF) EndSwitch $lastCode = $bFlag EndIf if($bFlag == 192) Then ConsoleWrite("Output: START + SELECT (exit this application)" & @CRLF) Exit EndIf WEnd Else ConsoleWriteError("Just Cause 2 is not running!" & @CRLF) EndIf $lpJoy=0 ; Joyclose ;====================================== ; _JoyInit() ;====================================== Func _JoyInit() Local $joy Global $JOYINFOEX_struct = "dword[13]" $joy=DllStructCreate($JOYINFOEX_struct) if @error Then Return 0 DllStructSetData($joy, 1, DllStructGetSize($joy), 1);dwSize = sizeof(struct) DllStructSetData($joy, 1, 255, 2) ;dwFlags = GetAll return $joy EndFunc ;====================================== ; _GetJoy($lpJoy,$iJoy) ; $lpJoy Return from _JoyInit() ; $iJoy Joystick # 0-15 ; Return Array containing X-Pos, Y-Pos, Z-Pos, R-Pos, U-Pos, V-Pos,POV ; Buttons down ; ; *POV This is a digital game pad, not analog joystick ; 65535 = Not pressed ; 0 = U ; 4500 = UR ; 9000 = R ; Goes around clockwise increasing 4500 for each position ;====================================== Func _GetJoy($lpJoy,$iJoy) Local $coor,$ret Dim $coor[8] DllCall("Winmm.dll","int","joyGetPosEx", _ "int",$iJoy, _ "ptr",DllStructGetPtr($lpJoy)) if Not @error Then $coor[0] = DllStructGetData($lpJoy,1,3) $coor[1] = DllStructGetData($lpJoy,1,4) $coor[2] = DllStructGetData($lpJoy,1,5) $coor[3] = DllStructGetData($lpJoy,1,6) $coor[4] = DllStructGetData($lpJoy,1,7) $coor[5] = DllStructGetData($lpJoy,1,8) $coor[6] = DllStructGetData($lpJoy,1,11) $coor[7] = DllStructGetData($lpJoy,1,9) EndIf return $coor EndFunc
Moderators Melba23 Posted April 13, 2014 Moderators Posted April 13, 2014 Lachee,Please read the Forum rules (the link is also at bottom right of each page) - particularly the bit about not discussing game automation - before you post again. Thread locked. But welcome to the AutoIt forum - and see you soon with a legitimate question I hope. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Recommended Posts