Тема: Autohotkey: эмуляция мыши
Следующий скрипт позволяет перемещать курсор и имитировать нажатия кнопок мыши при помощи клавиатуры.
Особенности:
- перемещение по диагонали при сочетании клавиш направлений;
- регулирование скорости и ускорения (спасибо teadrinker);
- настройки не сохраняются;
- переназначить клавиши можно только вручную.
Управление с цифровой клавиатуры, подробнее в меню "Помощь (F9)"
#SingleInstance, force
Menu, Tray, Icon, %A_WinDir%\system32\main.cpl, 1, 0
DetectHiddenWindows, on
SetNumLockState AlwaysOn
CoordMode, Mouse, Screen
SetDefaultMouseSpeed, 0
SetMouseDelay 0
N = 5 ; коэффициент ускорения, можно менять 0-20
s = 3 ; коэффициент скорости, можно менять 1-20
Gui, Color, aaaaaa
Gui, Add, Progress, vMyProgress1 w7 h50 cRed Range1-20 Vertical, %N%
Gui, Add, Progress, vMyProgress2 w7 h50 cGreen Range0-20 Vertical x+1, %s%
GUI, Show, hide, cmspeed
WinSet, TransColor, aaaaaa 180, cmspeed
GUI, -Caption +ToolWindow ;+AlwaysOnTop
GUI2Text=
(
Перемещение курсора:
- Влево {Num4}
- Вниз {Num5}
- Вправо {Num6}
- Вверх {Num8}
* Используйте сочетания клавиш
для перемещения по диагонали
Скорость {Alt+} {Alt-}
Ускорение {Ctrl+} {Ctrl-}
Кнопки мышки:
- ЛКМ {Num7}
- ПКМ {Num9}
- СКМ {Num2}
- колесо вверх {Num1}
- колесо вниз {Num3}
)
Gui 2: Font, s10, Lucida console
Gui, 2: +toolwindow +caption +border
Gui, 2: Add, Text, , %GUI2Text%
Gui, 2: Add, Text, y+20 cBlue gahkcom, www.autohotkey.com
Gui, 2: Add, Text, y+10 cBlue gscinfo, www.script-coding.com
Gui, 2: Add, Button, y+15 w70 default, OK
Gui, 2: Add, Picture, icon1 x250 y350, %SystemRoot%\system32\main.cpl
Menu, Tray, NoStandard
Menu, Tray, Add, Помощь%a_tab%F9, vk78
Menu, Tray, Add, Отключить%a_tab%F11, vk7a
Menu, Tray, Add
Menu, Tray, Add, Выход%a_tab%F12, vk7b
vk67:: LButton ; numpad7 имитирует нажатие левой кнопки мыши
vk69:: RButton ; numpad9 имитирует нажатие правой кнопки мыши
vk62:: MButton ; numpad2 имитирует нажатие средней кнопки мыши
vk61:: Click WheelUp ; numpad1 имитирует поворот колеса вверх
vk63:: Click WheelDown ; numpad3 имитирует поворот колеса вниз
vk65:: ; numpad 5 имитирует перемещение мыши вниз
vk64:: ; numpad 4 имитирует перемещение мыши влево
vk66:: ; numpad 6 имитирует перемещение мыши вправо
vk68:: ; numpad 8 имитирует перемещение мыши вверх
While GetKeyState(A_ThisHotkey, "P") || GetKeyState(A_PriorHotkey, "P")
{
k := a_index*s*N/40
shift := N = 0 ? s : k
if GetKeyState("vk65", "P")
{
if GetKeyState("vk64", "P")
x := -shift, y := shift
Else if GetKeyState("vk66", "P")
x := y := shift
Else
x := 0, y := shift
}
Else if GetKeyState("vk64", "P")
{
if GetKeyState("vk65", "P")
x := -shift, y := shift
Else if GetKeyState("vk68", "P")
x := y := -shift
Else
x := -shift, y := 0
}
Else if GetKeyState("vk66", "P")
{
if GetKeyState("vk68", "P")
x := shift, y := -shift
Else if GetKeyState("vk62", "P")
x := y := shift
Else
x := shift, y := 0
}
Else if GetKeyState("vk68", "P")
{
if GetKeyState("vk66", "P")
x := shift, y := -shift
Else if GetKeyState("vk64", "P")
x := y := -shift
Else
x := 0, y := -shift
}
MouseMove, x, y, 0, R
Sleep, 20
}
Return
^vk6B:: ; Ctrl+ прибавить ускорение ----------------------
^vkBB::
IF flag11<>1
{
MouseGetPos, xpos, ypos
GUI, Show, x %xpos% y %ypos% ; NA, cmspeed
flag11=1
}
IF N < 20
{
N := N+1
GuiControl,, MyProgress1, %N%
}
return
^vk6D:: ; Ctrl- убавить ускорение ----------------------
^vkBD::
IF flag12<>1
{
MouseGetPos, xpos, ypos
GUI, Show,x %xpos% y %ypos% ; NA, cmspeed
flag12=1
}
IF N > 0
{
N := N-1
GuiControl,, MyProgress1, %N%
}
return
!vk6B:: ; Alt+ прибавить скорость ----------------------
!vkBB::
IF flag21<>1
{
MouseGetPos, xpos, ypos
GUI, Show, x %xpos% y %ypos% ; NA, cmspeed
flag1=21
}
IF s < 20
{
s := s+1
GuiControl,, MyProgress2, %s%
}
return
!vk6D:: ; Alt- убавить скорость ----------------------
!vkBD::
IF flag22<>1
{
MouseGetPos, xpos, ypos
GUI, Show,x %xpos% y %ypos% ; NA, cmspeed
flag22=1
}
IF s > 1
{
s := s-1
GuiControl,, MyProgress2, %s%
}
return
*vk6B up::
*vkBB up::
gui hide
flag11=0
flag21=0
return
*vk6D up::
*vkBD up::
gui hide
flag12=0
flag22=0
return
vk78:: ; F9 - help
Gui, 2: Show, Center h400 w300,Помощь
return
vk7a:: ; F11 - suspend
Suspend
If A_IsSuspended = 1
{
Menu, Tray, Icon, %A_WinDir%\system32\shell32.dll, 220, 1
menu, tray, rename, Отключить%a_tab%F11, Включить%a_tab%F11
}
Else
{
Menu, Tray, Icon, %A_WinDir%\system32\main.cpl, 1, 1
menu, tray, rename, Включить%a_tab%F11, Отключить%a_tab%F11
}
return
vk7b:: ; F12 - exit
Suspend, Permit
ExitApp
2ButtonOK:
2GuiClose:
2GuiEscape:
Gui,2: cancel
return
ahkcom:
Run www.autohotkey.com
return
scinfo:
Run www.script-coding.com
return