加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Unicode SendKeys Alternative(任何编程语言)

发布时间:2020-12-20 13:45:36 所属栏目:Python 来源:网络整理
导读:在我得到实际问题之前,我会说尽管我目前正在使用 Python,但我会接受任何语言的解决方案.我主要是一名Java程序员,但由于Java仅限于其JVM,我认为不可能用Java创建它. 目标: 我正在尝试制作一个拦截键盘事件的程序(我已经使用pyHook完成了这部分,这是我用Pytho
在我得到实际问题之前,我会说尽管我目前正在使用 Python,但我会接受任何语言的解决方案.我主要是一名Java程序员,但由于Java仅限于其JVM,我认为不可能用Java创建它.

目标:

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

问题:

一切都很好,直到我需要使用sendKeys发送unicode字符,如alpha,delta或omega.钩子工作得很好,SendKeys与普通的ASCII字符完美配合.我尝试了以下库都无济于事(代码示例在底部)

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

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

问题

1.是否可以在SendKeys中使用unicode字符? (谷歌搜索到目前为止似乎表明这是不可能的).
由于可能不是这种情况,我想知道:
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)

你没有在评论中跟进问题,所以这必然是推测性的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读