AHK 脚本双击每 X 次左键单击每两次单击随机双击

问题描述

我想知道是否有一种方法可以编写一个 AHK 脚本来在每一次随机的左键点击(随机双击每一次点击)时双击鼠标左键

解决方法

绝对

the docs 开始,我们有 Random 函数

生成一个伪随机数。

使用语法

Random,OutputVar,Min,Max

其中OutputVar是输出变量,Min是最小值(含),Man是最大值(含)。

有了这些信息,让我们创建一个名为 generateNewRandomsubroutine,每次我们想要重新生成随机数时都可以调用它。

对于本示例,我将 Min 设置为 1,将 Max 设置为 10,以便生成包含 [1,10] 之间的随机数。您可以根据需要更改这些值。 我们将把 Random 函数的输出保存到一个名为 NumClicks 的变量中。


接下来,让我们创建一个每次点击鼠标左键时都会触发的 hotkey

然而,这个热键需要几个不同的modifiers(即:*、~和$)才能正常工作。您可以在 the docs 中找到有关它们的更多信息。

简而言之:

  • 通配符 (*) 激活热键,即使其他修饰键(例如 ShiftCtrl 被按下
  • 波浪号 (~) 允许热键的本机功能在热键被触发时仍然发生。
  • 美元符号 ($) 允许热键 Send 自身而不会导致无限循环。

对于热键本身,当按下 LButton(鼠标左键)时,执行以下操作:

  • 减少 numClicks
  • 如果 numClicks 为 0
    • 再次点击
    • 生成一个新的随机数

除了 SubroutineHotkey 之外,我们还需要在开头的 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