diff --git a/mausuHoldo.ahk b/mausuHoldo.ahk new file mode 100644 index 0000000..6b27345 --- /dev/null +++ b/mausuHoldo.ahk @@ -0,0 +1,280 @@ +#MaxThreadsPerHotkey 2 +#HotkeyInterval 10000 +#MaxHotkeysPerInterval 9999 +;;WINDOOOOOOOOOOOOOOOOOOOOOOOOOOOOOWS y ahk unaware del futuro de los escritorios +;;https://www.autohotkey.com/boards/viewtopic.php?t=97706 +DllCall("SetThreadDpiAwarenessContext", "ptr", -3, "ptr") + +;;DllCall("QueryPerformanceCounter", "Int64*", baseTime) +;;DllCall("QueryPerformanceCounter", "Int64*", currentTime) +;;DllCall("QueryPerformanceFrequency", "Int64*", updateRate) +;;updateRate := updateRate / 1000 +;;currentTime := currentTime / 1.0 +;;baseTime := baseTime / 1.0 + +mouseActive := 0 + +rightMov := 0 +lefMov := 0 +upMov := 0 +downMov := 0 + +rBtnHold := 0 +mBtnHold := 0 +lBtnHold := 0 + +speedUp := 1 +speedUpFactor := 20 +mouseSpeed := speedUp * speedUpFactor + 3 + +;;Toggle speed +RCtrl & ,:: + ;;SendInput, {RCtrl Up} + speedUp := !(speedUp) + mouseSpeed := speedUp * speedUpFactor + 3 + ;;SendInput, {RCtrl Down} + return + +;;tuckaway +;;targeting 1080p displays with taskbar on top. Change at your leisure. +RCtrl & .:: + MouseMove, 1940, 100 + ;;inputCleaning() + return + +mouseMovement(lefMov, rightMov, upMov, downMov, mouseSpeed) +{ + MouseMove, (rightMov + lefMov) * (mouseSpeed), (upMov + downMov) * (mouseSpeed), 0, R +} + +LAlt & RAlt:: +RAlt & LAlt:: +;;<^>!LAlt:: +;;LAlt & RAlt:: + mouseActive := !(mouseActive) +#if mouseActive + +Loop +{ + if (mouseActive == 0) + { + lefMov := 0 + rightMov := 0 + upMov := 0 + downMov := 0 + lBtnHold := 0 + mBtnHold := 0 + rBtnHold := 0 + break + } + ;;DllCall("QueryPerformanceCounter", "Int64*", currentTime) + ;;if (currentTime - baseTime >= updateRate) + ;;{ + mouseMovement(lefMov, rightMov, upMov, downMov, mouseSpeed) + baseTime := currentTime + ;;} +} +return +#if +return + +$j:: + if (mouseActive == 1) + { + lefMov := -1 + } + else + { + SendInput, j + } + return +j Up:: + if (mouseActive == 1) + { + lefMov := 0 + } + return + +$sc027:: + if (mouseActive == 1) + { + rightMov := 1 + } + else + { + SendInput, {sc027} + } + return +sc027 Up:: +if (mouseActive == 1) + { + rightMov := 0 + } + return + +$l:: + if (mouseActive == 1) + { + upMov := -1 + } + else + { + SendInput, l + } + return +l Up:: + if (mouseActive == 1) + { + upMov := 0 + } + return + +$k:: + if (mouseActive == 1) + { + downMov := 1 + } + else + { + SendInput, k + } + return +k Up:: + if (mouseActive == 1) + { + downMov := 0 + } + return + +$u:: + if (mouseActive == 1) + { + if(lBtnHold == 1) + { + SendInput, {LButton Up} + lBtnHold := 0 + } + else + { + SendInput, {LButton} + } + KeyWait, u + } + else + { + SendInput, u + } + return +u Up::return + +$m:: + if (mouseActive == 1) + { + if(lBtnHold == 1) + { + SendInput, {LButton Up} + lBtnHold := 0 + } + else + { + SendInput, {LButton Down} + lBtnHold := 1 + } + KeyWait, m + } + else + { + SendInput, m + } + return +m Up::return + +$i:: + if (mouseActive == 1) + { + if(mBtnHold == 1) + { + SendInput, {MButton Up} + mBtnHold := 0 + } + else + { + SendInput, {MButton} + } + KeyWait, i + } + else + { + SendInput, i + } + return +i Up::return + +$sc033:: + if (mouseActive == 1) + { + if(mBtnHold == 1) + { + SendInput, {MButton Up} + mBtnHold := 0 + } + else + { + SendInput, {MButton Down} + mBtnHold := 1 + } + KeyWait, `, + } + else + { + SendInput, `, + } + return +sc033 Up::return + +$o:: + if (mouseActive == 1) + { + if(RBtnHold == 1) + { + SendInput, {RButton Up} + mBtnHold := 0 + } + else + { + SendInput, {RButton} + } + KeyWait, o + } + else + { + SendInput, o + } + return +o Up::return + +$.:: + if (mouseActive == 1) + { + if(rBtnHold == 1) + { + SendInput, {RButton Up} + mBtnHold := 0 + } + else + { + SendInput, {RButton Down} + mBtnHold := 1 + } + KeyWait, `. + } + else + { + SendInput, `. + } + return + + +;;#if + +return \ No newline at end of file