Тема: AHK: Копировать или вставить по удержанию ЛКМ.
С чего началось
Как я понимаю проблема в том, что при отпускании lbutton сбивается выделение, нужно на время заблокировать отжатие lbutton, отпустить после копирования. Подскажите пожалуйста как это сделать.
#NoTrayIcon ; comment with ; like ;#NoTrayIcon to use with trayicon, or leave it, to use without trayicon
~lButton::
starttime1 := A_TickCount
MouseGetPos, X, Y
Wait, lButton
MouseGetPos, X2, Y2
elapsedtime := A_TickCount - starttime1
IF ((elapsedtime > 320) & (X = X2) & (y = y2) & (A_Cursor = "IBeam"))
{
;Долгое нажатие
;soundbeep, 100, 500
;Send, ^{SC02F}
PixelSearch,,, X-108, Y-108, X+108, Y+108, 0x3399ff,, Fast RGB ; определяем синий цвет
if (!ErrorLevel = 1) ; если нашёл
{
Send, ^{SC02e}
msgbox, copy
}
if (!ErrorLevel = 0) ; если нашёл
{
Send, ^{SC02F}
msgbox, past
}
}
return
Чем закончилось, благодаря Alectric http://forum.script-coding.com/viewtopi … 419#p99419
Как работает: выделяешь текст, не отпуская ЛКМ кнопку ждешь сообщения о том, что все скопировано, затем зажимаешь ЛКМ на пустом месте и ждешь сообщения, что вставлено; с файлами аналогично.
#SingleInstance,Force
SetKeyDelay,0
SetWinDelay,20
loop
{
sleep,10
if (!do and a_timeidle>700 and GetKeyState("Lbutton","P"))
{
do=1
if Text:=Copy(c="")
{
settimer,removetooltip,-2000
if !(Text~="^\w:\\")
{
tooltip,Текст скопирован.`n`n%Text%
clipboard:=Text
}
else
tooltip,Файл скопирован.`n%Text%
}
else
{
tooltip,Вставка.
settimer,removetooltip,-1000
sendinput,{lbutton up}
sendinput,^{vk56}
}
}
else if (do and !GetKeyState("Lbutton","P"))
do=
;tooltip,% Text "`n" a_timeidle
}
return
removetooltip:
tooltip
return
Copy(c="")
{
tmp:=clipboardall
if c
{
Clipboard=
loop,30
{
sleep,10
} until !Clipboard
sendinput,{lbutton up}
sendinput,^{vk43}
}
loop,30
{
sleep,10
} until Clipboard
txt:=Clipboard
if !(Txt~="^\w:\\")
Clipboard:=tmp
return % txt
}