autohotkey如何将开始和结束设置成一个键

2025-06-26 01:31:54
推荐回答(1个)
回答1:

剑三你按F12干嘛?

你这个脚本的问题在LOOP循环上面。

在循环体中,你并没有给出跳出循环的条件。

因为你用到了PressKey := ! PressKey这样的三元表达式,那么PressKey这个变量就可以利用。

这个三元表达式的作用就是每次你按下OEM3键(`)之后将PressKey变量的值设置为0或者1.

那么,当你设置之后就要利用到,不然要他何用? 

用法当然是在循环中做 一个判断

if PressKey{ break } ; 如果PressKey = 1 就退出循环。

而这一切的前提是你用#MaxThreadsPerHotkey 2来设置同一个激活键能有两个线程。

第一个线程开始的时候 PressKey = 0 所以Loop执行中。 第二个线程开始的时候就跳出Loop循环体。

算了,说那么多你估计也不想看,直接给你结果吧。

完整的脚本。

#IfWinActive ahk_class KGWin32App
#MaxThreadsPerHotkey 2
`::
PressKey := ! PressKey
loop{
    Send {F12}
    Sleep,100
} Until If (PressKey = 0)
return
#MaxThreadsPerHotkey 1