问题描述
我想知道是否有一种方法可以编写一个 AHK 脚本来在每一次随机的左键点击(随机双击每一次点击)时双击鼠标左键
解决方法
绝对
从 the docs 开始,我们有 Random
函数
生成一个伪随机数。
使用语法
Random,OutputVar,Min,Max
其中OutputVar
是输出变量,Min
是最小值(含),Man
是最大值(含)。
有了这些信息,让我们创建一个名为 generateNewRandom
的 subroutine,每次我们想要重新生成随机数时都可以调用它。
对于本示例,我将 Min
设置为 1,将 Max
设置为 10,以便生成包含 [1,10]
之间的随机数。您可以根据需要更改这些值。
我们将把 Random
函数的输出保存到一个名为 NumClicks
的变量中。
接下来,让我们创建一个每次点击鼠标左键时都会触发的 hotkey。
然而,这个热键需要几个不同的modifiers(即:*、~和$)才能正常工作。您可以在 the docs 中找到有关它们的更多信息。
简而言之:
- 通配符 (*) 激活热键,即使其他修饰键(例如 Shift 或 Ctrl 被按下
- 波浪号 (~) 允许热键的本机功能在热键被触发时仍然发生。
- 美元符号 ($) 允许热键
Send
自身而不会导致无限循环。
对于热键本身,当按下 LButton(鼠标左键)时,执行以下操作:
- 减少 numClicks
- 如果
numClicks
为 0- 再次点击
- 生成一个新的随机数
除了 Subroutine 和 Hotkey 之外,我们还需要在开头的 subroutine 部分调用一次 auto-execute 以生成初始随机价值。
最终脚本:
gosub generateNewRandom ;Generate initial random number
*~$LButton::
numClicks--
if(numClicks==0){
Click
gosub generateNewRandom ;Generate subsequent random numbers
}
return
generateNewRandom:
Random,numClicks,1,10 ;Adjust these values as needed
return