为什么这个autohotkey脚本无法一致地保存剪贴板内容?

下面是我的一个脚本片段,试图在我的指尖上添加额外的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

任何想法,为什么上述失败和补救措施,我可以采取解决这个问题?

在Windows上,剪贴板可以保存不同类型的数据。 粘贴时,应用程序会检查哪些类型的数据可用并请求一种或多种类型,然后决定如何使用它。 如果剪贴板上已有数据,并且AutoHotkey将unicode添加到剪贴板而不清除它,则应用程序可能会看到并请求其他数据而不是unicode。

这些是Windows上的标准剪贴板格式: http : //msdn.microsoft.com/zh-cn/library/ms649013(VS.85).aspx

可能Autohotkey正在粘贴CF_UNICODE格式,应用程序正在请求陈旧的CF_TEXT数据。

您应该能够使用Autohotkey_L的发送功能绕过剪贴板要求。 http://www.autohotkey.net/~Lexikos/AutoHotkey_L/

使用Autohotkey_L在此论坛帖子中查看代码: http ://www.autohotkey.com/forum/viewtopic.php?p = 272379#272379