gpt4 book ai didi

python - Unicode SendKeys 替代方案(任何编程语言)

转载 作者:太空宇宙 更新时间:2023-11-03 11:51:18 25 4
gpt4 key购买 nike

在回答实际问题之前,我会说虽然我目前正在使用 Python,但我会接受任何语言的解决方案。我主要是一名 Java 程序员,但由于 Java 非常局限于其 JVM,我认为不可能用 Java 创建它。

目标:

我正在尝试编写一个程序来拦截键盘事件(我已经使用 pyHook 完成了这部分,这是我使用 Python 编写此程序的主要原因之一)。基于这些事件和上下文,我需要将 unicode 字符(古希腊语)写入任何聚焦窗口(目前仅在 Windows 操作系统上,但适用于所有操作系统的统一解决方案似乎是理想的)。基本上这是一个允许我(古典语言学生)输入古希腊语的程序。

问题:

在我需要使用 sendKeys 发送 unicode 字符(如 alpha、delta 或 omega)之前,一切都运行良好。 Hook 完美运行,SendKeys 与普通 ASCII 字符完美运行。我已经尝试了以下库都无济于事:(底部的代码示例)

  • SendKeysCtypes(与博客所说的相反,它不支持 unicode)
  • win32com.client 使用 shell 和 SendKeys。
  • SendKeys(另一个基本上做同样事情的库)

既然我已经概述了我目前的情况,我有以下问题:

问题

<我>1。是否可以将 unicode 字符与 SendKeys 一起使用? (到目前为止,谷歌搜索似乎表明这是不可能的)。
由于情况可能并非如此,我想知道:
2。是否有任何其他库能够将 unicode 字符发送到聚焦窗口?

我想到的另一件事是我可能完全使用了错误的方法(整个模拟按键事件)。非常欢迎任何其他可以帮助我实现或至少接近我的目标的解决方案。

#coding: utf-8
import time
import win32com
import win32com.client


shell = win32com.client.Dispatch("WScript.Shell")
shell.Run('notepad')
time.sleep(0.1)
shell.AppActivate('kladblok')
shell.SendKeys("When Unicode characters are pasted here, errors ensue", 0)

最佳答案

shell.SendKeys(u"When Unicode characters are pasted here, harmony shall hopefully ensue".encode("utf-16le"), 0)

您没有跟进评论中的问题,因此这必然是推测性的。

关于python - Unicode SendKeys 替代方案(任何编程语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26808094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com