我发现以下AutoHotkey代码段here无需格式化即可粘贴文本并支持Unicode:
<^<+v:: ; Text–only paste from ClipBoard
Clip0 = %ClipBoardAll%
Transform, UC, Unicode ; Save Unicode text
Transform, Clipboard, Unicode, %UC%
Send ^v ; For best compatibility: SendPlay
Sleep 50 ; Don't change clipboard while it is pasted! (Sleep > 0)
ClipBoard = %Clip0% ; Restore original ClipBoard
VarSetCapacity(Clip0, 0) ; Free memory
Return
然而,当我在AutoHotkey_L
的最新版本上运行时,它会抱怨以下错误:
Line 4: Parameter #2 invalid.
其中Line 4
指的是行Transform, UC, Unicode ; Save Unicode text
。
该片段应该根据上面链接上的评论工作。有什么想法我得到这个错误?
答案 0 :(得分:1)
您安装了哪个版本的AutoHotkey_L?在安装过程中,当前版本将要求您在Unicode和ANSI之间进行选择。如果选择Unicode,则Transform命令不具有Unicode子命令。我猜是因为不需要它。
来自AutoHotkey_L命令的Transform文档:
Unicode [,String]:(此命令在AutoHotkey_L的Unicode版本中不可用。)检索或存储Unicode文本 剪贴板。注意:整个剪贴板可以保存和恢复 ClipboardAll的意思,它允许&#34;转换Unicode&#34;经营 而不会丢失剪贴板的原始内容。
我没有使用Unicode版本,所以我无法测试,但我假设在AutoHotkey_L的Unicode版本中,从剪贴板检索到的任何文本都已经是Unicode,所以这应该可行:
<^<+v:: ; Text–only paste from ClipBoard
Clip0 = %ClipBoardAll%
Clipboard = %Clipboard% ; Convert clipboard text to plain text.
Send ^v ; For best compatibility: SendPlay
Sleep 50 ; Don't change clipboard while it is pasted! (Sleep > 0)
ClipBoard = %Clip0% ; Restore original ClipBoard
VarSetCapacity(Clip0, 0) ; Free memory
Return