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

如何用AutoHotkey实现鼠标触右边缘跳转指定位置?左边缘代码改右边缘失效

修复右边缘鼠标触发问题的AutoHotkey代码

以下是修正后的右边缘版本代码,同时修复了原代码中存在的几个潜在问题:

; 获取显示器工作区域的正确坐标
SysGet, WorkArea, MonitorWorkArea

; 创建用于检测右边缘的透明GUI
Gui, Color, 0x000000
Gui, +AlwaysOnTop +ToolWindow -Caption
; 计算GUI位置:右边缘向左偏移1px,高度覆盖整个工作区域
Gui, Show, w1 h%WorkAreaBottom-WorkAreaTop% x%WorkAreaRight-1% y%WorkAreaTop%, right_win
WinSet, Transparent, 1, right_win

; 监听鼠标移动消息
OnMessage(0x200, "EdgeHandler")
return

EdgeHandler() {
    static countdown := 0
    if (countdown = 0) {
        ; 设置延迟检测,避免频繁触发
        SetTimer, CheckRightEdge, -100
        countdown := 1
    }
    return

CheckRightEdge:
    MouseGetPos, , , winId
    WinGetTitle, winTitle, ahk_id %winId%
    ; 检查是否触发了右边缘的GUI
    if (winTitle = "right_win") {
        ; 将鼠标移动到目标位置(可自行修改坐标)
        MouseMove, 960, 300, 0
    }
    countdown := 0
    return
}

关键修复点:

  • GUI位置修正:右边缘的GUI需要将X坐标设为WorkAreaRight - 1(因为GUI宽度为1px,这样才能刚好贴合屏幕右边缘),如果直接设为WorkAreaRight会导致GUI完全处于屏幕外,无法被鼠标触发。
  • 标题匹配:将GUI标题改为right_win,并同步修改检测逻辑中的标题判断,确保只有触碰右边缘GUI时才触发移动。
  • 工作区域坐标正确获取:使用SysGet, WorkArea, MonitorWorkArea正确获取工作区域的上下左右坐标,避免原代码中变量命名不规范导致的潜在错误。
  • GUI高度修正:通过WorkAreaBottom - WorkAreaTop计算工作区域的实际高度,确保GUI完全覆盖工作区域(即使任务栏不在底部也能正常工作)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:51:11