#Requires AutoHotkey v2.0
#SingleInstance Force
isDesktop() {
return WinActive("ahk_class Progman") || WinActive("ahk_class WorkerW")
}
global lastClick := 0
~LButton::
{
if !isDesktop()
return
; если пользователь реально делает двойной клик — не вмешиваемся
if (A_TickCount - lastClick < DllCall("GetDoubleClickTime"))
return
lastClick := A_TickCount
; не мешаем перетаскиванию: если удержали кнопку или сдвинули мышь — выходим
MouseGetPos &x1, &y1
Sleep 30
if GetKeyState("LButton","P")
return
MouseGetPos &x2, &y2
if (Abs(x2-x1) > 3 || Abs(y2-y1) > 3)
return
Click 2 ; превращаем одиночный клик на Рабочем столе в двойной
}