sandin Posted October 31, 2008 Posted October 31, 2008 (edited) This is mainly designed for games, but can you can modify it as you wish for your script.You can set any hotkey to your middle mouse button, and switch between them by scrolling your mouse wheel, you can also set hotkeys to your Forward/Backward mouse button by clicking on to SETUP button.Hook.dll file this script uses was made by larry, and make sure u have this script and hook.dll file in the same dir.script also require some sort of hotkeys list file (hotkeys.dat - also must be in the same dir as script), like this one:SPACE CTRL ALT ENTER Q W E I S C M P F2 F3 F4 F5 F6 PRINTSCREENif the file "hotkeys.dat" doesn't exist, the script will create one.and here's the source:expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_outfile=LweMon.exe #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <EditConstants.au3> #Include <Misc.au3> #Include <File.au3> #NoTrayIcon Opt ("SendKeyDownDelay", 110) Opt ("SendKeyDelay", 60) Global $radio_hotkeys = true Global $setup = false Global $PAUSE_KEY = "14" ;Caps Lock Key Global $progname = "Gamer's Hotkeys" Global $input_back, $input_forward Global $send_back = "{CTRL}" Global $send_forward = "<SWITCH>" $dll2 = DllOpen("user32.dll") $dll3 = DllOpen(".\hook.dll") $tray_size = WinGetPos("[CLASS:Shell_TrayWnd]") $form1 = GUICreate($progname, 300, 50, @DesktopWidth-300, @DesktopHeight-50-$tray_size[3], $WS_POPUP, $WS_EX_TOPMOST) GUISetIcon("shell32.dll", -121) GUISetBkColor("0x99ccff") GUICtrlCreateGraphic(0, 0, 300, 50, $SS_BLACKFRAME) GUICtrlCreateGraphic(150, 2, 148, 46, $SS_BLACKFRAME) GUICtrlCreateGraphic(2, 2, 146, 46, $SS_BLACKFRAME) $setup_button = GUICtrlCreateButton("Setup", 152, 27, 100, 20) $exit_button = GUICtrlCreateButton("Exit", 252, 27, 44, 20) $skill_radio = GUICtrlCreateRadio("Skills", 165, 6, 40, 17) $skill_text = "" for $i = 0 to 9 $skill_text &= $i & @CRLF Next $hotkey_radio = GUICtrlCreateRadio("Hotkeys", 230, 6, 55, 17) if NOT FileExists(".\hotkeys.dat") then FileWrite(".\hotkeys.dat", "SPACE" & @CRLF & "CTRL" & @CRLF & "ALT" & @CRLF & "ENTER" & @CRLF & _ "Q" & @CRLF & "W" & @CRLF & "E" & @CRLF & "I" & @CRLF & "S" & @CRLF & "C" & @CRLF & "M" & @CRLF & _ "P" & @CRLF & "F2" & @CRLF & "F3" & @CRLF & "F4" & @CRLF & "F5" & @CRLF & "F6" & @CRLF & "PRINTSCREEN") EndIf $hotkey_text = FileRead(".\Hotkeys.dat") GUICtrlSetState(-1, $GUI_CHECKED) $form45 = GUICreate("",144, 44, 0, -26,BitOR($WS_POPUP,$WS_CHILD),$WS_EX_MDICHILD,$form1) GUISetBkColor(0xDFF3FE, $form45) $credits_label_hotkey = GUICtrlCreateLabel($hotkey_text, 0, -11, 144, Number(_FileCountLines(".\Hotkeys.dat"))*30, $ES_CENTER) GUICtrlSetColor(-1, "0x003366") GUICtrlSetFont(-1, 14, 400, 0, "Tahoma") $credits_label_skill = GUICtrlCreateLabel($skill_text, 0, -11, 144, 500, $ES_CENTER) GUICtrlSetColor(-1, "0x003366") GUICtrlSetFont(-1, 14, 400, 0, "Tahoma") if GUICtrlRead($hotkey_radio) = $GUI_CHECKED Then GUICtrlSetState($credits_label_skill, $GUI_HIDE) Else GUICtrlSetState($credits_label_hotkey, $GUI_HIDE) EndIf GUISetState() $sTransHeight = 1 For $x = 0 to 15 Local $stemp1 = GUICreate("",144, $sTransHeight, 0, ($sTransHeight * $x)-26 ,BitOR($WS_POPUP,$WS_CHILD),$WS_EX_MDICHILD,$form1) GUISetBkColor(0xDFF3FE, $stemp1) GUISetState() WinSetTrans($stemp1,"",(255/15)*(-1*($x-15))) Next For $x = 0 to 15 Local $stemp2 = GUICreate("",144, $sTransHeight, 0, 17-($sTransHeight * $x) ,BitOR($WS_POPUP,$WS_CHILD),$WS_EX_MDICHILD,$form1) GUISetBkColor(0xDFF3FE, $stemp2) GUISetState() WinSetTrans($stemp2,"",(255/15)*(-1*($x-15))) Next Const $WH_MOUSE = 7 Global $DLLinst = DLLCall("kernel32.dll","hwnd","LoadLibrary","str",".\hook.dll") Global $mouseHOOKproc = DLLCall("kernel32.dll","hwnd","GetProcAddress","hwnd",$DLLInst[0],"str","MouseProc") Global $hhMouse = DLLCall("user32.dll","hwnd","SetWindowsHookEx","int",$WH_MOUSE, _ "hwnd",$mouseHOOKproc[0],"hwnd",$DLLinst[0],"int",0) DLLCall($dll3,"int","SetValuesMouse","hwnd",$form1,"hwnd",$hhMouse[0]) GUIRegisterMsg(0x1400 + 0x0D30,"FuncScrollUp") ;mouse wheel up GUIRegisterMsg(0x1400 + 0x0D31,"FuncScrollDown") ;mouse wheel down GUIRegisterMsg(0x1400 + 0x0A32,"FuncScrollPressDown") ;mouse PRESS middle down GUIRegisterMsg(0x1400 + 0x0B32,"FuncScrollPressUp") ;mouse PRESS middle Up GUIRegisterMsg(0x1400 + 0x0A33,"FuncHotLeftDown") ;mouse PRESS down back GUIRegisterMsg(0x1400 + 0x0B33,"FuncHotLeftUp") ;mouse PRESS up back GUIRegisterMsg(0x1400 + 0x0A34,"FuncHotRightDown") ;mouse PRESS down forward GUIRegisterMsg(0x1400 + 0x0B34,"FuncHotRightUp") ;mouse PRESS up forward GUISetState(@SW_SHOW, $form1) func _get_current() Local $current_label if GUICtrlRead($hotkey_radio) = $GUI_CHECKED Then $current_label = $hotkey_text Else $current_label = $skill_text EndIf Local $array = StringSplit($current_label, @CRLF, 1) Local $credits_location Local $credits_hwdn if GUICtrlGetState($credits_label_hotkey) = 96 Then $credits_hwdn = GUICtrlGetHandle($credits_label_skill) Else $credits_hwdn = GUICtrlGetHandle($credits_label_hotkey) EndIf $credits_location = ControlGetPos($form45, "", $credits_hwdn) if $credits_location[1] = 11 Then Return $array[1] Else Local $number = (((($credits_location[1]*(-1))/11)+1)/2)+1 Return $array[$number] EndIf EndFunc func _setup_window($name) Local $Form2 = GUICreate("Setup", 250, 130, -1, -1, $WS_POPUP) GUISetBkColor("0x99ccff") GUICtrlCreateGraphic(0, 0, 250, 130, 0x07) GUICtrlCreateGraphic(3, 3, 250-6, 130-6, 0x07) GUICtrlCreateLabel($name, 10, 5, 230, -1, $ES_CENTER) GUICtrlSetFont(-1, 12, 800) GUICtrlCreateLabel("Press back or forward on your mouse to test", 10, 35, 230, 17, $ES_CENTER) GUICtrlCreateLabel("Back key sends: Left key sends:", 10, 55, 230, 17, $ES_CENTER) $input_back = GUICtrlCreateInput($send_back, 20, 72, 80, 20, $ES_CENTER+$ES_AUTOHSCROLL) GUICtrlSetFont(-1, 10, 800) $input_forward = GUICtrlCreateInput($send_forward, 150, 72, 80, 20, $ES_CENTER+$ES_AUTOHSCROLL) GUICtrlSetFont(-1, 10, 800) Local $close_button = GUICtrlCreateButton("Cancel", 180, 100, 60, 20) Local $accept_button = GUICtrlCreateButton("Accept", 115, 100, 60, 20) GUISetState(@SW_SHOW) $setup = true While 1 Local $nMsg = GUIGetMsg() Switch $nMsg Case $close_button GUIDelete($Form2) $setup = False ExitLoop case $accept_button $send_back = GUICtrlRead($input_back) $send_forward = GUICtrlRead($input_forward) GUIDelete($Form2) $setup = False ExitLoop case $GUI_EVENT_PRIMARYDOWN dllcall($dll2,"int","SendMessage","hWnd", $Form2,"int",0xA1,"int", 2,"int", 0) EndSwitch WEnd EndFunc While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit case $exit_button Exit case $setup_button _setup_window($progname & " Setup") case $skill_radio GUICtrlSetState($credits_label_skill, $GUI_SHOW) GUICtrlSetState($credits_label_hotkey, $GUI_HIDE) case $hotkey_radio GUICtrlSetState($credits_label_skill, $GUI_HIDE) GUICtrlSetState($credits_label_hotkey, $GUI_SHOW) case $GUI_EVENT_PRIMARYDOWN WinSetTrans($form45,"",254) do dllcall("user32.dll","int","SendMessage","hWnd", $form1,"int",0xA1,"int", 2,"int", 0) Local $msgg2 = GUIGetMsg() Until $msgg2 <> -7 WinSetTrans($form45,"",255) EndSwitch WEnd Func FuncScrollUp() if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $credits_location Local $credits_hwdn Local $max_size if GUICtrlGetState($credits_label_hotkey) = 96 Then $credits_hwdn = GUICtrlGetHandle($credits_label_skill) $max_size = -16*11 Else $credits_hwdn = GUICtrlGetHandle($credits_label_hotkey) $max_size = -((_FileCountLines(".\hotkeys.dat")*2)-5)*11 EndIf $credits_location = ControlGetPos($form45, "", $credits_hwdn) if $credits_location[1] >= $max_size then for $i = 1 to 3 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]-4) Sleep(1) Next for $i = 1 to 2 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]-3) Sleep(1) Next $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]-2) for $i = 1 to 2 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]-1) Sleep(1) Next if GUICtrlRead($skill_radio) = $GUI_CHECKED Then Local $new_skill = _get_current() Send("{" & $new_skill & "}") EndIf EndIf EndIf EndFunc Func FuncScrollDown() if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $credits_location Local $credits_hwdn Local $max_size if GUICtrlGetState($credits_label_hotkey) = 96 Then $credits_hwdn = GUICtrlGetHandle($credits_label_skill) $max_size = 10 Else $credits_hwdn = GUICtrlGetHandle($credits_label_hotkey) $max_size = 10 EndIf $credits_location = ControlGetPos($form45, "", $credits_hwdn) if $credits_location[1] <= $max_size then for $i = 1 to 3 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]+4) Sleep(1) Next for $i = 1 to 2 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]+3) Sleep(1) Next $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]+2) for $i = 1 to 2 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]+1) Sleep(1) Next if GUICtrlRead($skill_radio) = $GUI_CHECKED Then Local $new_skill = _get_current() Send("{" & $new_skill & "}") EndIf EndIf EndIf EndFunc func FuncScrollPressDown() if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $get_current = _get_current() if $get_current = "CTRL" Then Send("{CTRLDOWN}") ElseIf $get_current = "SHIFT" Then Send("{SHIFTDOWN}") ElseIf $get_current = "ALT" Then Send("{ALTDOWN}") Else Send("{" & $get_current & " down}") EndIf EndIf EndFunc func FuncScrollPressUp() Local $get_current = _get_current() if $get_current = "CTRL" Then Send("{CTRLUP}") ElseIf $get_current = "SHIFT" Then Send("{SHIFTUP}") ElseIf $get_current = "ALT" Then Send("{ALTUP}") Else Send("{" & $get_current & " up}") EndIf EndFunc func FuncHotRightDown() if $setup = false Then if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $get_current = $send_forward if $get_current = "{CTRL}" Then Send("{CTRLDOWN}") ElseIf $get_current = "{SHIFT}" Then Send("{SHIFTDOWN}") ElseIf $get_current = "{ALT}" Then Send("{ALTDOWN}") ElseIf $get_current = "<SWITCH>" Then if GUICtrlRead($hotkey_radio) = $GUI_CHECKED Then GUICtrlSetState($skill_radio, $GUI_CHECKED) GUICtrlSetState($credits_label_skill, $GUI_SHOW) GUICtrlSetState($credits_label_hotkey, $GUI_HIDE) Else GUICtrlSetState($hotkey_radio, $GUI_CHECKED) GUICtrlSetState($credits_label_skill, $GUI_HIDE) GUICtrlSetState($credits_label_hotkey, $GUI_SHOW) EndIf Else Send($get_current) EndIf EndIf Else GUICtrlSetBkColor($input_forward, 0x00FF00) EndIf EndFunc func FuncHotRightUp() if $setup = false Then if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $get_current = $send_forward if $get_current = "{CTRL}" Then Send("{CTRLUP}") ElseIf $get_current = "{SHIFT}" Then Send("{SHIFTUP}") ElseIf $get_current = "{ALT}" Then Send("{ALTUP}") EndIf EndIf Else GUICtrlSetBkColor($input_forward, 0xFFFFFF) EndIf EndFunc func FuncHotLeftDown() if $setup = false Then if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $get_current = $send_back if $get_current = "{CTRL}" Then Send("{CTRLDOWN}") ElseIf $get_current = "{SHIFT}" Then Send("{SHIFTDOWN}") ElseIf $get_current = "{ALT}" Then Send("{ALTDOWN}") ElseIf $get_current = "<SWITCH>" Then if GUICtrlRead($hotkey_radio) = $GUI_CHECKED Then GUICtrlSetState($skill_radio, $GUI_CHECKED) GUICtrlSetState($credits_label_skill, $GUI_HIDE) GUICtrlSetState($credits_label_hotkey, $GUI_SHOW) Else GUICtrlSetState($hotkey_radio, $GUI_CHECKED) GUICtrlSetState($credits_label_skill, $GUI_SHOW) GUICtrlSetState($credits_label_hotkey, $GUI_HIDE) EndIf Else Send($get_current) EndIf EndIf Else GUICtrlSetBkColor($input_back, 0x00FF00) EndIf EndFunc func FuncHotLeftUp() if $setup = false Then if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $get_current = $send_back if $get_current = "{CTRL}" Then Send("{CTRLUP}") ElseIf $get_current = "{SHIFT}" Then Send("{SHIFTUP}") ElseIf $get_current = "{ALT}" Then Send("{ALTUP}") EndIf EndIf Else GUICtrlSetBkColor($input_back, 0xFFFFFF) EndIf EndFunc Func OnAutoItExit() DLLCall("user32.dll","int","UnhookWindowsHookEx","hwnd",$hhMouse[0]) DLLCall("kernel32.dll","int","FreeLibrary","hwnd",$DLLinst[0]) DllClose($dll2) DllClose($dll3) EndFunchook.dll Edited November 1, 2008 by sandin Some cool glass and image menu | WinLIRC remote controler | Happy Holidays to all... | Bounce the sun, a game in which you must save the sun from falling by bouncing it back into the sky | Hook Leadtek WinFast TV Card Remote Control Msges | GDI+ sliding toolbar | MIDI Keyboard (early alpha stage, with lots of bugs to fix) | Alt+Tab replacement | CPU Benchmark with pretty GUI | Ini Editor - Edit/Create your ini files with great ease | Window Manager (take total control of your windows) Pretty GUI! | Pop-Up window from a button | Box slider for toolbar | Display sound volume on desktop | Switch hotkeys with mouse scroll
sandin Posted November 2, 2008 Author Posted November 2, 2008 none wants to mess with downloading DLL? or none tested it yet? more than 2 days had passed, and still no comments Some cool glass and image menu | WinLIRC remote controler | Happy Holidays to all... | Bounce the sun, a game in which you must save the sun from falling by bouncing it back into the sky | Hook Leadtek WinFast TV Card Remote Control Msges | GDI+ sliding toolbar | MIDI Keyboard (early alpha stage, with lots of bugs to fix) | Alt+Tab replacement | CPU Benchmark with pretty GUI | Ini Editor - Edit/Create your ini files with great ease | Window Manager (take total control of your windows) Pretty GUI! | Pop-Up window from a button | Box slider for toolbar | Display sound volume on desktop | Switch hotkeys with mouse scroll
Madza91 Posted November 4, 2008 Posted November 4, 2008 Wow, this is great my friend Well done! Just one thing, when I scrolling something your program changing hotkeys... Maybe you set changing hotkeys when is pressed Ctrl for example... [quote name='dbzfanatic' post='609696' date='Nov 26 2008, 08:46 AM']This is a help forum not a "write this for me" forum.[/quote](Sorry for bad English) :)
Default Posted November 12, 2008 Posted November 12, 2008 Excellent! Thanks for sharing this! It works really well.
BogdanNicolescu Posted April 11, 2022 Posted April 11, 2022 On 11/1/2008 at 12:09 AM, sandin said: http://img517.imageshack.us/img517/3443/81376432sz1.jpg This is mainly designed for games, but can you can modify it as you wish for your script. You can set any hotkey to your middle mouse button, and switch between them by scrolling your mouse wheel, you can also set hotkeys to your Forward/Backward mouse button by clicking on to SETUP button. Hook.dll file this script uses was made by larry, and make sure u have this script and hook.dll file in the same dir. script also require some sort of hotkeys list file (hotkeys.dat - also must be in the same dir as script), like this one: SPACE CTRL ALT ENTER Q W E I S C M P F2 F3 F4 F5 F6 PRINTSCREEN if the file "hotkeys.dat" doesn't exist, the script will create one. and here's the source: expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_outfile=LweMon.exe #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <EditConstants.au3> #Include <Misc.au3> #Include <File.au3> #NoTrayIcon Opt ("SendKeyDownDelay", 110) Opt ("SendKeyDelay", 60) Global $radio_hotkeys = true Global $setup = false Global $PAUSE_KEY = "14" ;Caps Lock Key Global $progname = "Gamer's Hotkeys" Global $input_back, $input_forward Global $send_back = "{CTRL}" Global $send_forward = "<SWITCH>" $dll2 = DllOpen("user32.dll") $dll3 = DllOpen(".\hook.dll") $tray_size = WinGetPos("[CLASS:Shell_TrayWnd]") $form1 = GUICreate($progname, 300, 50, @DesktopWidth-300, @DesktopHeight-50-$tray_size[3], $WS_POPUP, $WS_EX_TOPMOST) GUISetIcon("shell32.dll", -121) GUISetBkColor("0x99ccff") GUICtrlCreateGraphic(0, 0, 300, 50, $SS_BLACKFRAME) GUICtrlCreateGraphic(150, 2, 148, 46, $SS_BLACKFRAME) GUICtrlCreateGraphic(2, 2, 146, 46, $SS_BLACKFRAME) $setup_button = GUICtrlCreateButton("Setup", 152, 27, 100, 20) $exit_button = GUICtrlCreateButton("Exit", 252, 27, 44, 20) $skill_radio = GUICtrlCreateRadio("Skills", 165, 6, 40, 17) $skill_text = "" for $i = 0 to 9 $skill_text &= $i & @CRLF Next $hotkey_radio = GUICtrlCreateRadio("Hotkeys", 230, 6, 55, 17) if NOT FileExists(".\hotkeys.dat") then FileWrite(".\hotkeys.dat", "SPACE" & @CRLF & "CTRL" & @CRLF & "ALT" & @CRLF & "ENTER" & @CRLF & _ "Q" & @CRLF & "W" & @CRLF & "E" & @CRLF & "I" & @CRLF & "S" & @CRLF & "C" & @CRLF & "M" & @CRLF & _ "P" & @CRLF & "F2" & @CRLF & "F3" & @CRLF & "F4" & @CRLF & "F5" & @CRLF & "F6" & @CRLF & "PRINTSCREEN") EndIf $hotkey_text = FileRead(".\Hotkeys.dat") GUICtrlSetState(-1, $GUI_CHECKED) $form45 = GUICreate("",144, 44, 0, -26,BitOR($WS_POPUP,$WS_CHILD),$WS_EX_MDICHILD,$form1) GUISetBkColor(0xDFF3FE, $form45) $credits_label_hotkey = GUICtrlCreateLabel($hotkey_text, 0, -11, 144, Number(_FileCountLines(".\Hotkeys.dat"))*30, $ES_CENTER) GUICtrlSetColor(-1, "0x003366") GUICtrlSetFont(-1, 14, 400, 0, "Tahoma") $credits_label_skill = GUICtrlCreateLabel($skill_text, 0, -11, 144, 500, $ES_CENTER) GUICtrlSetColor(-1, "0x003366") GUICtrlSetFont(-1, 14, 400, 0, "Tahoma") if GUICtrlRead($hotkey_radio) = $GUI_CHECKED Then GUICtrlSetState($credits_label_skill, $GUI_HIDE) Else GUICtrlSetState($credits_label_hotkey, $GUI_HIDE) EndIf GUISetState() $sTransHeight = 1 For $x = 0 to 15 Local $stemp1 = GUICreate("",144, $sTransHeight, 0, ($sTransHeight * $x)-26 ,BitOR($WS_POPUP,$WS_CHILD),$WS_EX_MDICHILD,$form1) GUISetBkColor(0xDFF3FE, $stemp1) GUISetState() WinSetTrans($stemp1,"",(255/15)*(-1*($x-15))) Next For $x = 0 to 15 Local $stemp2 = GUICreate("",144, $sTransHeight, 0, 17-($sTransHeight * $x) ,BitOR($WS_POPUP,$WS_CHILD),$WS_EX_MDICHILD,$form1) GUISetBkColor(0xDFF3FE, $stemp2) GUISetState() WinSetTrans($stemp2,"",(255/15)*(-1*($x-15))) Next Const $WH_MOUSE = 7 Global $DLLinst = DLLCall("kernel32.dll","hwnd","LoadLibrary","str",".\hook.dll") Global $mouseHOOKproc = DLLCall("kernel32.dll","hwnd","GetProcAddress","hwnd",$DLLInst[0],"str","MouseProc") Global $hhMouse = DLLCall("user32.dll","hwnd","SetWindowsHookEx","int",$WH_MOUSE, _ "hwnd",$mouseHOOKproc[0],"hwnd",$DLLinst[0],"int",0) DLLCall($dll3,"int","SetValuesMouse","hwnd",$form1,"hwnd",$hhMouse[0]) GUIRegisterMsg(0x1400 + 0x0D30,"FuncScrollUp") ;mouse wheel up GUIRegisterMsg(0x1400 + 0x0D31,"FuncScrollDown") ;mouse wheel down GUIRegisterMsg(0x1400 + 0x0A32,"FuncScrollPressDown") ;mouse PRESS middle down GUIRegisterMsg(0x1400 + 0x0B32,"FuncScrollPressUp") ;mouse PRESS middle Up GUIRegisterMsg(0x1400 + 0x0A33,"FuncHotLeftDown") ;mouse PRESS down back GUIRegisterMsg(0x1400 + 0x0B33,"FuncHotLeftUp") ;mouse PRESS up back GUIRegisterMsg(0x1400 + 0x0A34,"FuncHotRightDown") ;mouse PRESS down forward GUIRegisterMsg(0x1400 + 0x0B34,"FuncHotRightUp") ;mouse PRESS up forward GUISetState(@SW_SHOW, $form1) func _get_current() Local $current_label if GUICtrlRead($hotkey_radio) = $GUI_CHECKED Then $current_label = $hotkey_text Else $current_label = $skill_text EndIf Local $array = StringSplit($current_label, @CRLF, 1) Local $credits_location Local $credits_hwdn if GUICtrlGetState($credits_label_hotkey) = 96 Then $credits_hwdn = GUICtrlGetHandle($credits_label_skill) Else $credits_hwdn = GUICtrlGetHandle($credits_label_hotkey) EndIf $credits_location = ControlGetPos($form45, "", $credits_hwdn) if $credits_location[1] = 11 Then Return $array[1] Else Local $number = (((($credits_location[1]*(-1))/11)+1)/2)+1 Return $array[$number] EndIf EndFunc func _setup_window($name) Local $Form2 = GUICreate("Setup", 250, 130, -1, -1, $WS_POPUP) GUISetBkColor("0x99ccff") GUICtrlCreateGraphic(0, 0, 250, 130, 0x07) GUICtrlCreateGraphic(3, 3, 250-6, 130-6, 0x07) GUICtrlCreateLabel($name, 10, 5, 230, -1, $ES_CENTER) GUICtrlSetFont(-1, 12, 800) GUICtrlCreateLabel("Press back or forward on your mouse to test", 10, 35, 230, 17, $ES_CENTER) GUICtrlCreateLabel("Back key sends: Left key sends:", 10, 55, 230, 17, $ES_CENTER) $input_back = GUICtrlCreateInput($send_back, 20, 72, 80, 20, $ES_CENTER+$ES_AUTOHSCROLL) GUICtrlSetFont(-1, 10, 800) $input_forward = GUICtrlCreateInput($send_forward, 150, 72, 80, 20, $ES_CENTER+$ES_AUTOHSCROLL) GUICtrlSetFont(-1, 10, 800) Local $close_button = GUICtrlCreateButton("Cancel", 180, 100, 60, 20) Local $accept_button = GUICtrlCreateButton("Accept", 115, 100, 60, 20) GUISetState(@SW_SHOW) $setup = true While 1 Local $nMsg = GUIGetMsg() Switch $nMsg Case $close_button GUIDelete($Form2) $setup = False ExitLoop case $accept_button $send_back = GUICtrlRead($input_back) $send_forward = GUICtrlRead($input_forward) GUIDelete($Form2) $setup = False ExitLoop case $GUI_EVENT_PRIMARYDOWN dllcall($dll2,"int","SendMessage","hWnd", $Form2,"int",0xA1,"int", 2,"int", 0) EndSwitch WEnd EndFunc While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit case $exit_button Exit case $setup_button _setup_window($progname & " Setup") case $skill_radio GUICtrlSetState($credits_label_skill, $GUI_SHOW) GUICtrlSetState($credits_label_hotkey, $GUI_HIDE) case $hotkey_radio GUICtrlSetState($credits_label_skill, $GUI_HIDE) GUICtrlSetState($credits_label_hotkey, $GUI_SHOW) case $GUI_EVENT_PRIMARYDOWN WinSetTrans($form45,"",254) do dllcall("user32.dll","int","SendMessage","hWnd", $form1,"int",0xA1,"int", 2,"int", 0) Local $msgg2 = GUIGetMsg() Until $msgg2 <> -7 WinSetTrans($form45,"",255) EndSwitch WEnd Func FuncScrollUp() if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $credits_location Local $credits_hwdn Local $max_size if GUICtrlGetState($credits_label_hotkey) = 96 Then $credits_hwdn = GUICtrlGetHandle($credits_label_skill) $max_size = -16*11 Else $credits_hwdn = GUICtrlGetHandle($credits_label_hotkey) $max_size = -((_FileCountLines(".\hotkeys.dat")*2)-5)*11 EndIf $credits_location = ControlGetPos($form45, "", $credits_hwdn) if $credits_location[1] >= $max_size then for $i = 1 to 3 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]-4) Sleep(1) Next for $i = 1 to 2 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]-3) Sleep(1) Next $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]-2) for $i = 1 to 2 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]-1) Sleep(1) Next if GUICtrlRead($skill_radio) = $GUI_CHECKED Then Local $new_skill = _get_current() Send("{" & $new_skill & "}") EndIf EndIf EndIf EndFunc Func FuncScrollDown() if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $credits_location Local $credits_hwdn Local $max_size if GUICtrlGetState($credits_label_hotkey) = 96 Then $credits_hwdn = GUICtrlGetHandle($credits_label_skill) $max_size = 10 Else $credits_hwdn = GUICtrlGetHandle($credits_label_hotkey) $max_size = 10 EndIf $credits_location = ControlGetPos($form45, "", $credits_hwdn) if $credits_location[1] <= $max_size then for $i = 1 to 3 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]+4) Sleep(1) Next for $i = 1 to 2 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]+3) Sleep(1) Next $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]+2) for $i = 1 to 2 $credits_location = ControlGetPos($form45, "", $credits_hwdn) ControlMove($form45,"",$credits_hwdn,0,$credits_location[1]+1) Sleep(1) Next if GUICtrlRead($skill_radio) = $GUI_CHECKED Then Local $new_skill = _get_current() Send("{" & $new_skill & "}") EndIf EndIf EndIf EndFunc func FuncScrollPressDown() if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $get_current = _get_current() if $get_current = "CTRL" Then Send("{CTRLDOWN}") ElseIf $get_current = "SHIFT" Then Send("{SHIFTDOWN}") ElseIf $get_current = "ALT" Then Send("{ALTDOWN}") Else Send("{" & $get_current & " down}") EndIf EndIf EndFunc func FuncScrollPressUp() Local $get_current = _get_current() if $get_current = "CTRL" Then Send("{CTRLUP}") ElseIf $get_current = "SHIFT" Then Send("{SHIFTUP}") ElseIf $get_current = "ALT" Then Send("{ALTUP}") Else Send("{" & $get_current & " up}") EndIf EndFunc func FuncHotRightDown() if $setup = false Then if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $get_current = $send_forward if $get_current = "{CTRL}" Then Send("{CTRLDOWN}") ElseIf $get_current = "{SHIFT}" Then Send("{SHIFTDOWN}") ElseIf $get_current = "{ALT}" Then Send("{ALTDOWN}") ElseIf $get_current = "<SWITCH>" Then if GUICtrlRead($hotkey_radio) = $GUI_CHECKED Then GUICtrlSetState($skill_radio, $GUI_CHECKED) GUICtrlSetState($credits_label_skill, $GUI_SHOW) GUICtrlSetState($credits_label_hotkey, $GUI_HIDE) Else GUICtrlSetState($hotkey_radio, $GUI_CHECKED) GUICtrlSetState($credits_label_skill, $GUI_HIDE) GUICtrlSetState($credits_label_hotkey, $GUI_SHOW) EndIf Else Send($get_current) EndIf EndIf Else GUICtrlSetBkColor($input_forward, 0x00FF00) EndIf EndFunc func FuncHotRightUp() if $setup = false Then if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $get_current = $send_forward if $get_current = "{CTRL}" Then Send("{CTRLUP}") ElseIf $get_current = "{SHIFT}" Then Send("{SHIFTUP}") ElseIf $get_current = "{ALT}" Then Send("{ALTUP}") EndIf EndIf Else GUICtrlSetBkColor($input_forward, 0xFFFFFF) EndIf EndFunc func FuncHotLeftDown() if $setup = false Then if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $get_current = $send_back if $get_current = "{CTRL}" Then Send("{CTRLDOWN}") ElseIf $get_current = "{SHIFT}" Then Send("{SHIFTDOWN}") ElseIf $get_current = "{ALT}" Then Send("{ALTDOWN}") ElseIf $get_current = "<SWITCH>" Then if GUICtrlRead($hotkey_radio) = $GUI_CHECKED Then GUICtrlSetState($skill_radio, $GUI_CHECKED) GUICtrlSetState($credits_label_skill, $GUI_HIDE) GUICtrlSetState($credits_label_hotkey, $GUI_SHOW) Else GUICtrlSetState($hotkey_radio, $GUI_CHECKED) GUICtrlSetState($credits_label_skill, $GUI_SHOW) GUICtrlSetState($credits_label_hotkey, $GUI_HIDE) EndIf Else Send($get_current) EndIf EndIf Else GUICtrlSetBkColor($input_back, 0x00FF00) EndIf EndFunc func FuncHotLeftUp() if $setup = false Then if NOT _IsPressed($PAUSE_KEY, $dll2) Then Local $get_current = $send_back if $get_current = "{CTRL}" Then Send("{CTRLUP}") ElseIf $get_current = "{SHIFT}" Then Send("{SHIFTUP}") ElseIf $get_current = "{ALT}" Then Send("{ALTUP}") EndIf EndIf Else GUICtrlSetBkColor($input_back, 0xFFFFFF) EndIf EndFunc Func OnAutoItExit() DLLCall("user32.dll","int","UnhookWindowsHookEx","hwnd",$hhMouse[0]) DLLCall("kernel32.dll","int","FreeLibrary","hwnd",$DLLinst[0]) DllClose($dll2) DllClose($dll3) EndFunc hook.dll I'm a noob at this scripting thingy, can you show me some examples how to use it? From what i understand, the hook.dll and script(what script?) must be in the same what folder? In the AutoIt3\Include folder? Thank you.
Developers Jos Posted April 11, 2022 Developers Posted April 11, 2022 ... and I reckon this is your final post on this topic or else I will ensure it is. Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
Recommended Posts