在当前焦点 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.
现在我想把它很好地集成到操作系统中,这样你就不用切换到浏览器,输入它,复制它,而是可以通过快捷方式调用程序:

我有兴趣支持:

使用此 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 上测试过。