AutoHotkey通过Clipboard变量实现剪贴板读写清空:读取需ClipWait等待并赋值text:=Clipboard;写入直接Clipboard:="文本",用`n换行;清空设Clipboard:="";可暂存saved:=Clipboard后恢复;ClipboardAll可获取含格式数据以判断类型。

如果您希望使用AutoHotkey脚本自动读取、修改或清空系统剪贴板中的文本内容,则需调用内置剪贴板变量与相关命令。以下是实现该功能的具体方法:
一、读取剪贴板当前内容
AutoHotkey通过内置变量Clipboard可直接获取当前剪贴板中的纯文本内容,该变量在读取时会自动等待剪贴板就绪,并返回字符串值。
1、使用ClipWait命令确保剪贴板已包含有效数据,避免读取空值。
2、将Clipboard变量赋值给自定义变量,例如text := Clipboard。
3、通过MsgBox显示该变量内容,验证读取结果。
4、若需处理多行文本,可直接对Clipboard进行字符串操作,无需额外解码。
二、向剪贴板写入新文本
向剪贴板写入内容即为对Clipboard变量赋值,赋值后系统剪贴板立即更新,后续粘贴操作将输出该内容。
1、设置Clipboard := "需要写入的文本",支持中文、英文及常见符号。
2、如需写入换行符,请使用`n表示换行,例如Clipboard := "第一行`n第二行"。
3、执行ClipWait, 0确保写入操作完成,防止后续操作读取到旧内容。
4、可结合Send ^v测试是否成功写入,但需注意焦点窗口是否接受粘贴。
三、清空剪贴板内容
清空剪贴板等效于将其设为空字符串,此举可移除所有格式化信息(如富文本、图片),仅保留空白状态。
1、执行Clipboard := ""即可将剪贴板内容置为空。
2、为确保彻底清空,建议在赋值后调用ClipWait, 0等待剪贴板同步完成。
3、可配合If (Clipboard = "")判断是否清空成功,返回true即表示当前为空。
4、注意:此操作不可逆,且不触发Windows剪贴板历史记录保存。
四、保存原始剪贴板并恢复
在修改前暂存原始剪贴板内容,便于后续还原,适用于临时替换场景。
1、在操作开始前执行saved := Clipboard,将当前内容保存至变量saved。
2、执行所需修改,例如Clipboard := "替换文本"。
3、需要恢复时执行Clipboard := saved,即可还原原始内容。
4、重要:saved变量仅保存文本,不保留图片、HTML等非文本格式。
五、检测剪贴板内容类型并分支处理
AutoHotkey可通过ClipboardAll获取完整剪贴板数据(含格式),再用内置函数判断是否含文本、图像等。
1、使用data := ClipboardAll捕获全部剪贴板内容(二进制形式)。
2、通过If InStr(data, "UTF-8")或If (StrLen(Clipboard) > 0)粗略判断是否存在文本。
3、若需精确识别,可先尝试读取Clipboard,再检查其长度与是否为空。
4、警告:ClipboardAll返回内容较大,频繁调用可能影响性能。

















