AutoKey - clipboard.get_selection()函数在某些字符串上失败

时间:2012-06-25 06:21:41

标签: python encoding python-2.7 special-characters autokey

我简化了我的脚本,因此您可以专注于我的问题的本质。

AutoKey(不是AutoHotKey)中,我制作了一个热键(shift-alt-T),它在我突出显示的任何字符串上执行此脚本(例如在gedit中 - 但任何其他gui编辑器太)。

strSelectedText = clipboard.get_selection()
keyboard.send_keys(" " + strSelectedText)

该脚本修改突出显示的文本,并在字符串的开头添加一个空格。

它适用于我强调的大多数字符串,但不适用于此:

* Copyright © 2008–2012 Lonnie Best. Licensed under the MIT License.

适用于此字符串:

* Add a Space 2.0.1

但不是这个:

* Add a Space 2.0.1 –

在python命令提示符下,它们没有任何问题,但是clipboard.get_selection()函数似乎被它们破坏了。

我对python脚本很新,所以我不确定这是否是一个AutoKey错误,或者我是否缺少一些知识,我应该知道在python中编码/准备字符串。

请帮忙。我在Ubuntu 12.04上这样做:

sudo apt-get install autokey-qt

2 个答案:

答案 0 :(得分:1)

版权符号没有键盘键,或者第三个示例中没有任何非ASCII字符,如EN DASH。您的脚本代码必须以某种方式将任何非ASCII Unicode字符转换为适当的键盘序列以生成它们。也许您可以从剪贴板中抓取并使用剪贴板功能将修改后的字符串粘贴回您的应用程序。

答案 1 :(得分:1)

这是{3}的Python 3实现中的错误(未通过autokey传递的特殊字符)。例如,请参阅GitHub