编写 AppleScript 实现 macOS 窗口截图并存档

风强大大_9039

风强大大_9039

2026-06-08

1033人浏览

原创

applescript通过调用screencapture -w命令实现窗口截图,自动添加时间戳命名、保存至指定文件夹,并支持finder定位或通知反馈,全程无需第三方工具。

applescript 本身不能直接截图,但可以调用 macos 原生命令 screencapture 完成窗口截图,并配合 shell 脚本逻辑实现自动命名、保存到指定文件夹、添加时间戳等存档功能。

获取前台应用的窗口截图

使用 screencapture -w 可以激活窗口选择模式,点击任意窗口即截取其内容(含阴影)。若需静默截取最前窗口(不交互),需借助 UI Scripting 获取窗口信息再触发截图 —— 但 macOS 14+ 对 Accessibility 权限限制更严,推荐稳妥方式:先用 -w 手动点选,再通过 AppleScript 自动化触发该命令并等待用户操作。

  • 脚本中用 do shell script "screencapture -w ..." 启动截图工具
  • 系统会暂停脚本执行,直到用户完成窗口点击
  • 截图自动保存为指定路径,无需额外等待或轮询

自动生成带时间戳的文件名

避免覆盖、便于归档的关键是动态生成唯一文件名。AppleScript 可通过 current date 获取时间,再格式化为 YYYY-MM-DD_HHMMSS 形式:

  • 示例代码:set now to current date
    set fileName to "Window_" & (year of now as string) & "-" & text -2 thru -1 of ("0" & (month of now as number)) & "-" & text -2 thru -1 of ("0" & day of now) & "_" & text -2 thru -1 of ("0" & hours of now) & text -2 thru -1 of ("0" & minutes of now) & text -2 thru -1 of ("0" & seconds of now) & ".png"
  • 更简洁做法:用 do shell script "date +'%Y-%m-%d_%H%M%S'" 借助 shell 格式化,返回字符串直接拼接

保存到指定文件夹并确保目录存在

存档路径建议设为 ~/Pictures/Screenshots/ 或自定义路径。AppleScript 需先检查并创建目标文件夹:

Vinteo AI
Vinteo AI

Vinteo AI是一款面向室内设计和电商视觉的 AI 空间效果生成工具。

下载
  • 用 POSIX file 和 do shell script "mkdir -p ..." 确保路径存在
  • 完整保存路径示例:/Users/yourname/Pictures/Screenshots/Window_2024-06-15_142308.png
  • 截图命令中直接指定完整路径:screencapture -w "/path/to/Window_2024-06-15_142308.png"

可选:截图后自动在 Finder 中定位或通知

提升工作流闭环体验:

  • 用 tell application "Finder" to reveal POSIX file "path/to/file.png" 快速定位文件
  • 或用 display notification "截图已存档" with title "Window Screenshot" 弹出提示
  • 如需打开图片,可用 tell application "Preview" to open POSIX file "..."

把上述逻辑组合起来,就能得到一个一键触发、手动点选窗口、自动命名存档、反馈明确的 macOS 窗口截图工具。不需要第三方依赖,纯系统命令 + AppleScript 即可稳定运行。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
macOS怎么切换用户账户
macOS怎么切换用户账户

在 macOS 系统中,可通过多种方式切换用户账户。如点击苹果图标选择 “系统偏好设置”,打开 “用户与群组” 进行切换;或启用快速用户切换功能,通过菜单栏或控制中心的账户名称切换;还能使用快捷键 “Control+Command+Q” 锁定屏幕后切换。

2025.05.09

4204

14

C++运算符基础入门
C++运算符基础入门

本专题详细讲解了C++运算符的类型、语法与使用方法,涵盖算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符及其他特殊运算符,并通过代码示例解析优先级与结合性。

2026.10.09

0

11

PixPix官网入口合集
PixPix官网入口合集

本专题汇总了PixPix官网在线使用入口及平台功能详解,涵盖文生图、图生图、AI图片编辑、AI视频创作等核心能力,并整理了AI爆款图片复刻、商品套图、详情页生成、视频变清晰与去水印等电商专项工具的使用教程。同时收录了PixPix MCP接入Codex、Claude Code等主流Agent的操作指南,助您一站式完成AI图片与视频创作。

2026.10.09

0

11

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

2026.10.08

60

20

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

160

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

140

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

100

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

100

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

120

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
python开发单词查询系统
python开发单词查询系统

共8课时 | 2.4万人学习