You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将函数参数传递给AutoHotkey的Send命令?

AutoHotkey 按键控制函数写法问题解答

原写法的问题

你提供的代码存在两个关键问题,导致无法正常运行:

  • 调用Interact(Lbutton, 1200)时,Lbutton未加引号,AutoHotkey会将其视为未定义变量,实际传递的是空值,Send命令无法识别要操作的按键。
  • Send {controlName Down}中的controlName是变量,但AutoHotkey的传统Send语法不会自动解析变量,因此无法将变量值替换为实际按键名。

修正方案

不需要新增参数,只需要对变量传递和解析做两处调整:

  1. 调用函数时,将按键名以字符串形式传递(加引号)。
  2. 在Send命令中,用百分号包裹变量名,让AutoHotkey解析变量值。

修正后的完整代码:

Interact(controlName, activationTime)
{
    Sleep 100                           ; 短暂停顿
    Send {%controlName% Down}           ; 解析变量,按住指定按键
    Sleep activationTime                ; 等待指定毫秒数
    Send {%controlName% Up}             ; 松开指定按键
    Sleep 100                           ; 短暂停顿
}

OpenMap()
{
    Interact("Lbutton", 1200)           ; 传递字符串形式的按键名
}

补充说明

如果使用AutoHotkey v2版本,语法会更简洁,无需百分号包裹变量,直接用表达式形式即可:

Interact(controlName, activationTime)
{
    Sleep 100
    Send "{controlName} Down"
    Sleep activationTime
    Send "{controlName} Up"
    Sleep 100
}

OpenMap()
{
    Interact("Lbutton", 1200)
}

内容的提问来源于stack exchange,提问作者Razzupaltuff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 23:33:12