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

AHK v2游戏自动Farming脚本启动即关闭及窗口ID问题求助

问题修复方案

核心问题分析与修复

1. 脚本启动后立即关闭

原脚本开头存在一个立即执行的代码块,其中的return会直接终止主脚本的执行流程,导致脚本启动后立刻退出。只需移除这个多余的代码块,脚本就能正常进入消息循环保持运行。

2. 窗口ID使用错误

AHK v2中,定位窗口必须使用"ahk_id " 窗口ID的字符串格式,直接传入数字ID无法被识别。原脚本里直接用id作为窗口参数,同时错误沿用v1的ahk_id %id%写法,导致无法正确定位目标窗口。正确写法是通过字符串拼接生成窗口标识:"ahk_id " id。

修复后的完整脚本

#Requires AutoHotkey v2.0
SetTitleMatchMode 2
#SingleInstance Force

id := 0

; 绑定热键:Ctrl+Alt+W 选择目标窗口
Hotkey "!^w", SelectWindow
Hotkey "f24", rel
Hotkey "f20", wgar
Hotkey "f21", fsug
Hotkey "f22", fpum
Hotkey "f13", wda
Hotkey "f14", wcas
Hotkey "f15", whub
Hotkey "f23", fcho

SelectWindow() {
    global id
    MouseGetPos , , &id, &control
    ToolTip "已选择窗口,ID: " id
    SetTimer ToolTip, -1000
}

rel() {
    global id
    ControlClick "Left",, "ahk_id " id,,, "NAU"
    ControlClick "Middle",, "ahk_id " id,,, "NAU"
    ControlSend "{a up}{s up}{d up}{w up}",, "ahk_id " id 
    Reload
}

fsug() {
    global id
    ControlSend "t",, "ahk_id " id
    Sleep 100
    ControlSend "{NumpadDiv}warp garden{Enter}1",, "ahk_id " id
    Sleep 100
    ControlClick "Left",, "ahk_id " id,,, "NAD"
    Loop 15 {
        ControlSend "{a down}",, "ahk_id " id
        Sleep 47750
        ControlSend "{a up}{s down}",, "ahk_id " id 
        Sleep 47750
        ControlSend "{s up}",, "ahk_id " id 
    }
    ControlSend "{d down}",, "ahk_id " id
    Sleep 9500
    ControlClick "Left",, "ahk_id " id,,, "NAU"
    ControlSend "{d up}",, "ahk_id " id 
}

wgar() {
    global id
    ControlSend "t",, "ahk_id " id
    Sleep 100
    ControlSend "{NumpadDiv}warp garden{Enter}1",, "ahk_id " id
}

fpum() {
    global id
    ControlSend "t",, "ahk_id " id
    Sleep 100
    ControlSend "{NumpadDiv}warp garden{Enter}1",, "ahk_id " id
    Sleep 100
    Loop 2 {
        ControlClick "Left",, "ahk_id " id,,, "NAD"
        ControlSend "{w down}",, "ahk_id " id
        Loop 6 {
            ControlSend "{a down}",, "ahk_id " id
            Sleep 72500
            ControlSend "{a up}{d down}",, "ahk_id " id
            Sleep 72500
            ControlSend "{d up}",, "ahk_id " id
        }
        ControlClick "Left",, "ahk_id " id,,, "NAU"
        ControlSend "{w up}t",, "ahk_id " id
        Sleep 100
        ControlSend "{NumpadDiv}warp garden{Enter}1",, "ahk_id " id
        Sleep 100
    }
}

wda() {
    global id
    ControlSend "t",, "ahk_id " id
    Sleep 100
    ControlSend "{NumpadDiv}warp da{Enter}",, "ahk_id " id
}

wcas() {
    global id
    ControlSend "t",, "ahk_id " id
    Sleep 100
    ControlSend "{NumpadDiv}warp castle{Enter}",, "ahk_id " id
}

whub() {
    global id
    ControlSend "t",, "ahk_id " id
    Sleep 100
    ControlSend "{NumpadDiv}warp hub{Enter}",, "ahk_id " id
}

fcho() {
    global id
    Loop {
        ControlClick "Middle",, "ahk_id " id,,, "NAD"
        Sleep 3
        ControlClick "Middle",, "ahk_id " id,,, "NAU"
        Sleep 3
    }
}

额外优化说明

  • 将原标签式子程序改为函数形式,符合AHK v2的最佳实践
  • 在SelectWindow函数中添加了ToolTip提示,方便确认窗口选择成功
  • 移除了所有冗余的return(函数执行完毕自动返回,无需额外return)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 00:05:27