在当前焦点 application/control 中保存文本光标位置,然后恢复它并粘贴文本
Save text cursor position in the currently focused application/control, then restore it and paste text
我想在文本光标的当前位置写'Hello World'。这可能是一个终端,或者是 Chrome 中我目前正在问这个问题的文本区域,或者是一个 Word 应用程序。
使用案例如下:
该应用程序是一个符号识别系统。它应该能够识别罕见的符号(如非德国人的 ü、ä、ö 或像 Σ 这样的数学符号)。你可以 try the recognizer here.
现在我想把它很好地集成到操作系统中,这样你就不用切换到浏览器,输入它,复制它,而是可以通过快捷方式调用程序:
- 应用程序 started/pops 使用键盘快捷键启动
- 保存文本光标所在的位置(但是可以这样做)
- 打开绘图区,用户绘图,点击关闭
- 识别完成,然后将识别的序列写入文本光标之前所在的位置
我有兴趣支持:
- Windows 7(例如,当用户打开 Microsoft Word、文本编辑器、浏览器...)
- Linux Mint MATE(例如,当用户使用文本编辑器、LibreOffice、浏览器...时)
使用此 python 代码:
https://github.com/SavinaRoja/PyUserInput
我可以在 window 中生成一个字符串,就好像它是在那里输入的一样。虽然它确实在 Linux:
中使用 Unicode 失败
>>> time.sleep(5) ; k.type_string('ΣΣ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pykeyboard/base.py", line 48, in type_string
self.tap_key(i)
File "/usr/local/lib/python2.7/dist-packages/pykeyboard/base.py", line 40, in tap_key
self.press_key(character)
File "/usr/local/lib/python2.7/dist-packages/pykeyboard/x11.py", line 91, in press_key
keycode = self.lookup_character_keycode(character)
File "/usr/local/lib/python2.7/dist-packages/pykeyboard/x11.py", line 222, in lookup_character_keycode
keysym = Xlib.XK.string_to_keysym(special_X_keysyms[character])
KeyError: '\xce'
不确定有什么解决方案。无论如何,您如何将任何 Unicode 字符键入文本 window?有一个 Gnomey-Linux 标准,您可以在其中键入 Ctrl-Shift-u,然后是十六进制数字,然后按 Ctrl-Shift 结束。使用:
k.press_key(k.shift_key)
k.press_key(k.control_key)
k.type_string("u03a3")
k.release_key(k.shift_key)
k.release_key(k.control_key)
并得到一个 Σ
包码好像是跨平台的,不知道是不是unicode入口方式。我只在 Linux 上测试过。
我想在文本光标的当前位置写'Hello World'。这可能是一个终端,或者是 Chrome 中我目前正在问这个问题的文本区域,或者是一个 Word 应用程序。
使用案例如下:
该应用程序是一个符号识别系统。它应该能够识别罕见的符号(如非德国人的 ü、ä、ö 或像 Σ 这样的数学符号)。你可以 try the recognizer here.
现在我想把它很好地集成到操作系统中,这样你就不用切换到浏览器,输入它,复制它,而是可以通过快捷方式调用程序:
- 应用程序 started/pops 使用键盘快捷键启动
- 保存文本光标所在的位置(但是可以这样做)
- 打开绘图区,用户绘图,点击关闭
- 识别完成,然后将识别的序列写入文本光标之前所在的位置
我有兴趣支持:
- Windows 7(例如,当用户打开 Microsoft Word、文本编辑器、浏览器...)
- Linux Mint MATE(例如,当用户使用文本编辑器、LibreOffice、浏览器...时)
使用此 python 代码:
https://github.com/SavinaRoja/PyUserInput
我可以在 window 中生成一个字符串,就好像它是在那里输入的一样。虽然它确实在 Linux:
中使用 Unicode 失败>>> time.sleep(5) ; k.type_string('ΣΣ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pykeyboard/base.py", line 48, in type_string
self.tap_key(i)
File "/usr/local/lib/python2.7/dist-packages/pykeyboard/base.py", line 40, in tap_key
self.press_key(character)
File "/usr/local/lib/python2.7/dist-packages/pykeyboard/x11.py", line 91, in press_key
keycode = self.lookup_character_keycode(character)
File "/usr/local/lib/python2.7/dist-packages/pykeyboard/x11.py", line 222, in lookup_character_keycode
keysym = Xlib.XK.string_to_keysym(special_X_keysyms[character])
KeyError: '\xce'
不确定有什么解决方案。无论如何,您如何将任何 Unicode 字符键入文本 window?有一个 Gnomey-Linux 标准,您可以在其中键入 Ctrl-Shift-u,然后是十六进制数字,然后按 Ctrl-Shift 结束。使用:
k.press_key(k.shift_key)
k.press_key(k.control_key)
k.type_string("u03a3")
k.release_key(k.shift_key)
k.release_key(k.control_key)
并得到一个 Σ
包码好像是跨平台的,不知道是不是unicode入口方式。我只在 Linux 上测试过。