Autohotkey 3 clicks = volume mute

谁说胖子不能爱 提交于 2019-12-11 01:49:50

问题


In autohotkey im trying to make it so that when I press the left mouse button 3 times with a delay of +/- 10 ms it becomes a volume mute

LButton::
if (?) 
{
     Send, Volume_Mute
}
else 
{
     Send, LButton
}
Return

回答1:


Use A_TickCount to read current time in milliseconds and then calculate the delay between clicks. See Date and Time

ms := A_TickCount
N := 3          ; number of clicks
T := 500        ; max delay between clicks, ms
clicks := 0

~lbutton::
    msx := A_TickCount      ; get current time
    d := msx - ms           ; get time past
    ms := msx               ; remember current time
    if (d < T) 
        clicks += 1
    else 
        clicks := 1
    if (clicks >= N) 
    {
        ; tooltip %N%-click detected 
        send {Volume_Mute}
        clicks := 0
    }
return



回答2:


Each Autohotkey Script (example.Ahk) that you will run in a loop (running in the background), these loops will repeating in a count off frequence ?...ms (milliseconds)

If you want to use a delay from +- 10ms you will need to change the Timer. (Default = +-250ms)

With the Autohotkey Command (SetTimer) you can change that.

(ps- +-10 ms is very fast i recommend to use a lower Time frequence)

In the Line (SetTimer, CountClicks, 100) you can change(optimize) the number 100. (so that it works fine on your system.)

Note: you can remove the line (msgbox) this is only to show visual how many times you did click.

Try this code:

#NoEnv
#SingleInstance force
;#NoTrayIcon

a1 := -1
b1 := 0

esc::exitapp ;You can click the (esc) key to stop the script. 

;if you use ~ it will also use the default function Left-Button-Click. 
;and if you Click the Left Mouse Button 3x times, it will Execute Ahk Code Part 3
~LButton::
if(a1 = -1)
{
a1 := 4
#Persistent
SetTimer, CountClicks, 100
}
else
{
a1 := 3
}
return

CountClicks:
if(a1 = 3)
{
b1 := b1 + 1
}
if(a1 = 0)
{
msgbox you did Click <LButton> Key > %b1%x times
if (b1=1) 
{
;if Click 1x - Then Execute Ahk Code Part 1 
;Here you can put any code for Part 1       
} 
if (b1=2) 
{
;if Click 2x - Then Execute Ahk Code Part 2  
;Here you can put any code for Part 2       
} 
if (b1=3) 
{
;if Click 3x - Then Execute Ahk Code Part 3 
;Here you can put any code for Part 3  
Send {Volume_Mute} ;Send, Volume_Mute     
} 
if (b1=4) 
{
;if Click 4x - Then Execute Ahk Code Part 4 
;Here you can put any code for Part 4       
} 
b1 := 0
SetTimer, CountClicks , off
reload ; restart script
}
a1 := a1 - 1
return

I did test it out on a Windows 10 System and it works.



来源:https://stackoverflow.com/questions/52522397/autohotkey-3-clicks-volume-mute

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!