Немного дополнил скрипт:
SendMode, Input
SetKeyDelay, -1
SetMouseDelay, -1
Sens := "3" ;================ [ Чувствительность прокрутки ] ====================
T_Sens := "3" ;==================== [ Интервал прокрутки ] ========================
MB_U := "{MButton Up}", MB_D := "{MButton Down}", WA := "WheelUp", WD := "WheelDown"
RButton::
If GetKeyState("LButton", "P") {
Send, % (OnF := !OnF) ? (MB_D) : (MB_U)
return
}
MemPos_Y := MGP_Y(), MemPos_X := MGP_X()
Loop
{
Slp("25")
If (MemPos_Y <> MGP_Y()) || (MemPos_X <> MGP_X()) {
Wheel_Funk1(A_ThisHotkey, Sens, T_Sens, WA, WD)
return
}
If !(GetKeyState("RButton", "P")) {
break
}
Slp("25")
}
UpDwKeyFunk(A_ThisHotkey)
return
Wheel_Funk1(Hot_key_, Sens, T_Sens, WA, WD)
{
Loop
{
MemPos_Y := MGP_Y(), MemPos_X := MGP_X()
Slp(T_Sens)
((MemPos_Y - Sens) > MGP_Y()) ? MC(WA), ((MemPos_Y + Sens) < MGP_Y()) ? MC(WD)
((MemPos_X - Sens) > MGP_X()) ? MC_WL(), ((MemPos_X + Sens) < MGP_X()) ? MC_WR()
Slp(T_Sens)
If !GetKeyState(Hot_key_, "P") {
return
}
}
}
UpDwKeyFunk(Hot_key)
{
SendInput, % "{" Hot_key " Down}"
while GetKeyState(Hot_key, "P")
Slp("25")
SendInput, % "{" Hot_key " Up}"
}
MGP_Y()
{
MouseGetPos,, Var_Y
return, Var_Y
}
MGP_X()
{
MouseGetPos, Var_X
return, Var_X
}
Slp(T_Sens)
{
Sleep, T_Sens
}
MC(Key)
{
MouseClick, % Key
return
}
MC_WL()
{
ControlGetFocus, fcontrol, A
SendMessage, 0x114, 0, 0, % fcontrol, A
}
MC_WR()
{
ControlGetFocus, fcontrol, A
SendMessage, 0x114, 1, 0, % fcontrol, A
}
ESC::
ExitApp
Функционал:
1) Нажимаем: ЛКМ + ПКМ = Срабатывать удержание СКМ ,
Повторно нажимаем ЛКМ + ПКМ = СКМ будет становиться отпущеной.
2) При одновременном нажатии ПКМ и вращении шарика (Или движение мишки Вверх / Низ) = прокрутка вверх-вниз.
Добавлено:
3) При одновременном нажатии ПКМ и вращении шарика (Или движение мишки Вправо / Влево) = прокрутка Вправо-Влево.
AutoHotKey Version: 1.1.09.02
Не спеши, а то успеешь..