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

如何让Apple Script仅在指定显示器范围内执行点击操作?

AppleScript 实现第二显示器应用点击的操作步骤

默认点击仅在主显示器生效的核心原因是:macOS 全局坐标以主显示器左上角为(0,0)原点,第二显示器的所有坐标都是基于该原点的偏移值,直接传递应用内相对坐标会被定位到主显示器对应位置。

具体实现步骤

  • 第一步:获取所有显示器的边界参数,确认第二显示器的坐标偏移
    执行以下代码获取所有显示器的边界数组,数组第一个元素为主显示器参数,第二个为第二显示器参数,单条参数格式为{左边界值, 上边界值, 右边界值, 下边界值}

    tell application "System Events" to set displayBoundsList to bounds of every desktop
    -- 提取第二显示器的左上角偏移坐标
    set secondDisplayLeft to item 1 of item 2 of displayBoundsList
    set secondDisplayTop to item 2 of item 2 of displayBoundsList
    
  • 第二步:确认目标应用处于第二显示器(可选,用于校验)

    -- 替换为你的目标应用名称,如"Google Chrome"、"Pages"
    set targetApp to "你的目标应用名称"
    tell application targetApp
        set appWindowBounds to bounds of front window
        -- 可判断窗口左边界是否等于第二显示器左边界,确认应用在第二屏
        if (item 1 of appWindowBounds) is equal to secondDisplayLeft then
            log "应用已在第二显示器"
        end if
    end tell
    
  • 第三步:坐标转换与点击执行
    你在应用窗口内测得的相对坐标(如窗口左上角向右100px、向下200px的位置为{100, 200}),需要叠加第二显示器的偏移值得到全局坐标,再执行点击:

    -- 替换为你需要点击的应用内相对坐标
    set relativeX to 100
    set relativeY to 200
    -- 计算全局坐标
    set globalX to secondDisplayLeft + relativeX
    set globalY to secondDisplayTop + relativeY
    
    -- 激活目标应用后执行点击
    tell application targetApp to activate
    delay 0.2 -- 等待应用激活完成,可按需调整时长
    tell application "System Events"
        click at {globalX, globalY}
    end tell
    

注意事项

  • 运行脚本前必须开启对应执行程序的辅助功能权限:打开「系统设置 > 隐私与安全性 > 辅助功能」,勾选「脚本编辑器」或者你打包后的脚本应用
  • 如果第二显示器摆放在主显示器的左侧、上方或下方,无需手动调整坐标计算逻辑,系统返回的displayBoundsList参数已自动适配对应偏移
  • 如果需要连续点击,每次点击之间可加delay 0.1避免操作过快被系统拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:15:02