Тема: AHK: Буфер обмена - движением мыши.
Нужна помощь, по созданию скрипта для Буфера Обмена.
Суть скрипта:
Нажатие левой кнопки мыши, если задержка более N_секунд - включение скрипта:
Выделяя текст - отпуская левую кнопку мыши - ожидание дальнейших координат мыши
Если вверх двинул мышью - копирование
Вниз - вырезание
Влево - вставка
Вправо - удаление
Вот нашел пару скриптов из тем
MButton::
Quit=0 ; Добавлена для взаимодействия.
Click down ; Имитация нажатия левой кнопки.
MouseGetPos, x1, y1 ; Взять начальные координаты мыши.
KeyWait, MButton ; Ждать отпускания средней кнопки.
if Quit
Exit
Click up ; Имитация отпускания левой кнопки.
MouseGetPos, x2, y2 ; Конечные координаты мыши.
dx:=Abs(x1-x2) ; Смещения по осям X и Y.
dy:=Abs(y1-y2)
if (dx>1.5 || dy>10) ; Чтобы отличить щелчок от выделения.
Send, ^{vk43} ; Ctrl-C, копирование.
else
Send, ^{vk56} ; Ctrl-V, вставка.
Exit
WheelUp::
if GetKeyState("MButton", "P") ; Нажата ли средняя кнопка.
{
Click up ; Имитация отпускания левой кнопки в конце выделения.
Send, ^{vk56} ; Ctrl-V, вставить.
Quit=1 ; Сигнал завершения работы.
}
else Send, {WheelUp} ; Если кнопка не нажата, колесо работает как обычно.
Exit
WheelDown::
if GetKeyState("MButton", "P")
{
Click up
Send, ^{vk58} ; Ctrl-X, вырезать.
Quit=1
}
else Send, {WheelDown}
Exit
А вот похожий скрипт, но он выводит после копирование - сообщение Copy:
~LButton::
x1 =
y1 =
loop
{
MouseGetPos, x2, y2
Sleep, 200
if (x1 = %x2% and y1 = %y2%)
Break
x1 = %x2%
y1 = %y2%
}
KeyWait, Lbutton, U T.5
if errorlevel = 1
{
Label1:
ControlGetFocus, control, A
SendMessage, 0x301, , , %control%, A
ToolTip, Copy
KeyWait, Lbutton, U T.5
if errorlevel = 1
{
x3 =
y3 =
loop
{
MouseGetPos, x4, y4
Sleep, 200
if (y3 = %y4% and x3 = %x4%)
Break
x3 = %x4%
y3 = %y4%
}
Goto, Label1
}
Else
{
ToolTip
Exit
}
}
Exit
Return
Очень буду благодарен за помощь в создании скрипта! Думаю он будет очень удобен для многих!

