这是我的一个脚本片段,试图将额外的Unicode精彩放在我的指尖。
::\iff::
SendUnicode("⇔")
return
; many rules later...
SendUnicode(char){
ClipSaved := ClipboardAll ;;;
;apparently this is the only way AHK can handle Unicode.
Transform, Clipboard, Unicode, %char%
SendInput ^v
Clipboard := ClipSaved ;;;
return
}
不幸的是,我不得不注释掉标有;;;
的行,因为它们在保留剪贴板内容方面给出了不一致的结果。我经历的最常见问题是粘贴现有剪贴板内容而不是char
。
关于上述原因失败的原因以及我可以采取哪些措施来解决问题?
答案 0 :(得分:2)
在Windows上,剪贴板可以容纳不同类型的数据。粘贴时,应用程序会检查哪些类型的数据可用并请求一种或多种类型,然后决定如何使用它。如果剪贴板上已有数据,并且AutoHotkey将unicode添加到剪贴板而不清除它,则应用程序可能会看到并请求其他数据而不是unicode。
这些是Windows上可用的标准剪贴板格式:http://msdn.microsoft.com/en-us/library/ms649013(VS.85).aspx
Autohotkey可能会使用CF_UNICODE格式进行粘贴,并且应用程序正在请求陈旧的CF_TEXT数据。
您应该可以使用Autohotkey_L的Send功能来绕过剪贴板要求。 http://www.autohotkey.net/~Lexikos/AutoHotkey_L/
使用Autohotkey_L尝试此论坛帖子中的代码:http://www.autohotkey.com/forum/viewtopic.php?p=272379#272379