能否实现该AutoHotkey脚本?需求为按下FN时添加按键至选中行首尾
实现按住FN键后给选中行首尾添加后续按键的AutoHotkey脚本
原脚本存在几个关键问题,比如错误获取后续输入的按键、选中行的逻辑不合理、多余的删除操作等,下面是修正后的完整实现:
~FN:: ; 保留FN键本身功能,同时触发热键逻辑 ; 等待用户按下任意按键,获取该按键的字符 Input, userKey, V L1 ; V表示允许任意按键,L1限制只获取一个字符 if (ErrorLevel != "EndKey") ; 确保成功获取到按键 { ; 复制选中的文本到剪贴板 Clipboard := "" SendInput, ^c ClipWait, 1 ; 等待剪贴板内容就绪 if (!ErrorLevel) { ; 处理文本:在首尾添加用户按下的按键 processedText := userKey . Clipboard . userKey ; 清空剪贴板并粘贴处理后的文本 Clipboard := processedText SendInput, ^v } } return
关键逻辑说明:
~FN:::~符号让FN键的原生功能不受影响,同时触发热键代码Input, userKey, V L1:等待用户按下单个按键,将按键字符存入userKey变量^c与ClipWait:复制选中的文本到剪贴板,并等待操作完成,确保能获取到内容processedText := userKey . Clipboard . userKey:将用户按键拼接在选中文本的首尾^v:粘贴处理后的文本覆盖原有选中内容
额外提示:
- 如果需要支持特殊按键(如功能键、方向键等),可以调整
Input命令的参数,比如使用Input, userKey, V不限制长度,再配合KeyWait等命令处理 - 若不需要保留FN键的原生功能,去掉开头的
~即可
内容的提问来源于stack exchange,提问作者Umer Hammaz
相关产品推荐
相关产品推荐

