AutoHotkey 语言 AutoHotkey 操作剪贴板数据的技巧

AutoHotkey阿木 发布于 2025-06-11 11 次阅读


AutoHotkey 操作剪贴板数据的技巧

AutoHotkey 是一款功能强大的自动化脚本语言,它允许用户通过编写脚本来自动化日常任务,提高工作效率。剪贴板是计算机中常用的数据传输工具,AutoHotkey 提供了丰富的函数和命令来操作剪贴板数据。本文将围绕 AutoHotkey 操作剪贴板数据的技巧展开,旨在帮助读者掌握这一实用技能。

剪贴板基础操作

在 AutoHotkey 中,可以使用以下命令来获取和设置剪贴板内容:

获取剪贴板内容

ahk
Clipboard := ClipboardAll
MsgBox, The clipboard contains: %Clipboard%

`ClipboardAll` 函数用于获取剪贴板的所有内容,包括文本和图片。`Clipboard` 变量用于存储剪贴板内容。

设置剪贴板内容

ahk
Clipboard := "Hello, AutoHotkey!"

上述代码将 "Hello, AutoHotkey!" 设置为剪贴板内容。

清空剪贴板

ahk
Clipboard := ""

上述代码将清空剪贴板内容。

高级剪贴板操作

剪贴板历史记录

AutoHotkey 支持剪贴板历史记录功能,允许用户访问之前复制的内容。以下是一些相关函数:

- `ClipboardGet`:获取剪贴板历史记录中的指定内容。
- `ClipboardSet`:将剪贴板历史记录中的指定内容设置为当前剪贴板内容。

ahk
; 获取剪贴板历史记录中的第2个内容
Clipboard := ClipboardGet(2)

; 将剪贴板历史记录中的第3个内容设置为当前剪贴板内容
ClipboardSet(3)

剪贴板格式转换

AutoHotkey 支持多种剪贴板格式,如文本、图片、RTF(富文本格式)等。以下是一些相关函数:

- `ClipboardFormat`:获取当前剪贴板格式。
- `ClipboardImage`:获取剪贴板中的图片。
- `ClipboardSave`:将剪贴板内容保存到文件。

ahk
; 获取当前剪贴板格式
ClipboardFormat := ClipboardFormat()

; 获取剪贴板中的图片
Image := ClipboardImage()

; 将剪贴板内容保存到文件
ClipboardSave("clipboard_content.txt")

剪贴板过滤

AutoHotkey 支持对剪贴板内容进行过滤,例如去除空格、换行符等。以下是一些相关函数:

- `ClipboardTrim`:去除剪贴板内容两端的空白字符。
- `ClipboardReplace`:替换剪贴板内容中的指定文本。
- `ClipboardRegExReplace`:使用正则表达式替换剪贴板内容。

ahk
; 去除剪贴板内容两端的空白字符
Clipboard := ClipboardTrim()

; 替换剪贴板内容中的 "AutoHotkey" 为 "AHK"
Clipboard := ClipboardReplace("AutoHotkey", "AHK")

; 使用正则表达式替换剪贴板内容中的数字
Clipboard := ClipboardRegExReplace("[0-9]+", "")

实战案例

以下是一些使用 AutoHotkey 操作剪贴板的实战案例:

案例一:自动粘贴历史剪贴板内容

ahk
Persistent
MaxThreadsPerHotkey 2

ClipHistory := []

; 监听 Ctrl+C 组合键
^c::
ClipHistory.Insert(ClipboardAll)
MsgBox, Copied to history.
return

; 监听 Ctrl+V 组合键
^v::
if (ClipHistory.Count > 0) {
Clipboard := ClipHistory[ClipHistory.Count]
ClipHistory.RemoveAt(ClipboardHistory.Count)
MsgBox, Pasted from history.
}
return

案例二:自动去除剪贴板内容中的空格

ahk
Persistent

; 监听 Ctrl+C 组合键
^c::
Clipboard := ClipboardTrim()
return

案例三:自动保存剪贴板内容为图片

ahk
Persistent

; 监听 Ctrl+C 组合键
^c::
Image := ClipboardImage()
if (Image) {
Image.SaveAs("clipboard_image.png", "png")
MsgBox, Saved as clipboard_image.png.
}
return

总结

AutoHotkey 提供了丰富的函数和命令来操作剪贴板数据,可以帮助用户实现各种自动化任务。通过本文的学习,相信读者已经掌握了 AutoHotkey 操作剪贴板数据的技巧。在实际应用中,可以根据需求灵活运用这些技巧,提高工作效率。