【问题标题】:Why does this autohotkey script fail to consistently preserve clipboard contents?为什么这个自动热键脚本无法始终如一地保留剪贴板内容?
【发布时间】:2011-01-27 18:00:33
【问题描述】:

这是我的一个脚本的 sn-p,它试图将额外的 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 clipboard autohotkey


    【解决方案1】:

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

    这些是 Windows 上可用的标准剪贴板格式:http://msdn.microsoft.com/en-us/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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多