Тема: AHK: MouseMove -> Wheel
Являюсь обладателем планшета под Win7 со встроенной оптической мышкой в виде квадратного окошка по которому нужно проводить пальцем (оптический трек).
Имеется желание использовать эту мышь в двух режимах:
1. обычная мышь
2. колесо прокрутки мыши (или клавиатурные UP DOWN)
Режим меняется определенной клавишей.
Код набросал, но есть баги:
1. Иногда вообще не двигается с места
2. двигается как нервная, т.е. не хватает плавности
SetBatchLines, -1
SetMouseDelay, -1
CoordMode, Mouse
OnExit, Exit
hHook := DllCall("SetWindowsHookEx"
, Int, WH_MOUSE_LL := 14
, Int, RegisterCallback("LowLevelMouseProc", "Fast")
, UInt, DllCall("GetModuleHandle", UInt, 0)
, UInt, 0)
Return
Exit:
DllCall("UnhookWindowsHookEx", UInt, hHook)
ExitApp
Esc:: ExitApp
SC127::
zzz := zzz ? 0 : 1
y_prev := ""
return
LowLevelMouseProc(nCode, wParam, lParam)
{
global zzz
global y_prev ;static y_prev
if (nCode < 0 || wParam != 0x200) ; WM_MOUSEMOVE = 0x200
Return DllCall("CallNextHookEx", UInt, 0, Int, nCode, UInt, wParam, UInt, lParam)
y := NumGet(lParam+0, 4)
y_prev := y_prev = "" ? y : y_prev
if (zzz = 1)
{
if (y > y_prev)
{
Send {Up}
}
Else
Send {Down}
Return 1
}
else Return DllCall("CallNextHookEx", UInt, 0, Int, nCode, UInt, wParam, UInt, lParam)
}
Прошу помощи в доработке скрипта.
Не въеду как добавить плавности, посему click WheelUp не использовал