实现按住快捷键选中非相邻单词并拼接复制到剪贴板的方案需求
实现按住Ctrl键选中非相邻单词并拼接复制到剪贴板
功能说明
按住Ctrl键时,通过双击选中任意非相邻单词,这些单词会自动以空格分隔拼接成单个字符串;松开Ctrl键后,拼接结果将自动存入系统剪贴板。
可运行的AutoHotkey实现代码
; 初始化全局变量存储拼接内容 global selectedWords := "" ; 监听Ctrl键按下:重置拼接字符串,清除上次操作残留 ^:: selectedWords := "" return ; 监听Ctrl键松开:将拼接结果写入剪贴板 ~Ctrl Up:: Clipboard := selectedWords ; 可选提示:显示操作完成提示,1.5秒后自动消失 ToolTip, 拼接内容已复制到剪贴板 SetTimer, ToolTip, -1500 return ; 监听鼠标左键双击,仅在Ctrl按住时生效 ~LButton:: if (GetKeyState("Ctrl", "P")) { ; 短暂延迟确保文本选中操作完成 Sleep, 100 ; 复制当前选中的文本 SendInput, ^c ClipWait, 0.5 if (!ErrorLevel) { ; 去除选中文本的首尾空白,避免多余空格 currentSel := Trim(Clipboard) ; 非空内容才追加,自动用空格分隔 if (currentSel != "") { selectedWords .= (selectedWords != "" ? " " : "") currentSel } } } return
代码逻辑说明
global selectedWords:全局变量保存拼接后的字符串,确保跨事件访问^:::Ctrl按下时重置变量,避免上次操作的内容干扰~Ctrl Up:::Ctrl松开时将最终拼接结果写入剪贴板,可选提示框告知操作完成~LButton:::监听鼠标左键点击,仅在Ctrl按住时执行:- 延迟等待文本选中完成,避免获取到空内容
- 通过
^c复制选中文本,等待剪贴板就绪后获取内容 - 去除文本首尾空白后,按规则追加到拼接字符串,自动添加分隔空格
内容的提问来源于stack exchange,提问作者Pingui
相关产品推荐
相关产品推荐

