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

技术问询:如何用AppleScript获取Visual Studio Pro窗口的位置与大小

获取Visual Studio Code窗口位置与大小的AppleScript解决方案

我来帮你搞定这个问题!你遇到的两个报错其实都是有明确原因的:

  • 直接调用Visual Studio Code的bounds属性失败,是因为VS Code本身的AppleScript接口并没有暴露窗口位置、大小这类属性,所以系统根本拿不到这个值。
  • 用System Events时报找不到进程,大概率是因为你运行AppleScript的工具(比如系统自带的「脚本编辑器」)还没获得「辅助功能」权限,另外也可以确认下进程名称(VS Code的进程名通常是Visual Studio Code,少数版本可能显示为Code)。

正确的实现方法

首先第一步,先给你的脚本工具开权限:
打开「系统偏好设置」→「安全性与隐私」→「隐私」标签,找到左侧的「辅助功能」,然后把你用来运行AppleScript的工具(比如「脚本编辑器」)添加进去并勾选。如果之前运行脚本时弹出过权限请求,直接允许也可以。

然后用下面的代码就能正常获取窗口信息了:

tell application "System Events"
    tell process "Visual Studio Code"
        -- 取窗口的坐标位置(x, y)
        set winPosition to position of window 1
        -- 取窗口的宽高尺寸
        set winSize to size of window 1
        -- 转换成和bounds一致的格式:{x, y, x+宽度, y+高度}
        set winBounds to {item 1 of winPosition, item 2 of winPosition, item 1 of winPosition + item 1 of winSize, item 2 of winPosition + item 2 of winSize}
        
        -- 弹窗显示结果,你也可以改成自己需要的处理逻辑
        display dialog "窗口位置: " & winPosition & return & "窗口大小: " & winSize & return & "Bounds格式: " & winBounds
    end tell
end tell

额外的容错处理

如果担心VS Code没打开窗口导致报错,可以加个判断:

tell application "System Events"
    set vsCodeProcess to process "Visual Studio Code"
    if exists window 1 of vsCodeProcess then
        set winPosition to position of window 1 of vsCodeProcess
        set winSize to size of window 1 of vsCodeProcess
        set winBounds to {item 1 of winPosition, item 2 of winPosition, item 1 of winPosition + item 1 of winSize, item 2 of winPosition + item 2 of winSize}
        display dialog "窗口位置: " & winPosition & return & "窗口大小: " & winSize & return & "Bounds格式: " & winBounds
    else
        display dialog "Visual Studio Code目前没有打开的窗口哦"
    end if
end tell

要是还是提示找不到进程,试试把process "Visual Studio Code"改成process "Code",部分版本的VS Code进程名会是这个。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:14:55