设置可变数量的热键侦听器进程

戴维德山

我想创建一个检测可变数量的不同热键的脚本。
例如,说我要上热键3个听众<ctrl>+1<ctrl>+2<ctrl>+3我尝试了这个:

from pynput import keyboard


def on_macro(key):
   print('You pressed <ctrl> '+key)

if __name__ == "__main__":
   for c in range(3):
      hotkey = keyboard.HotKey(
        keyboard.HotKey.parse('<ctrl>+'+str(c)),
        lambda: on_macro(c)
      )
      listener = keyboard.Listener(on_press=hotkey.press, on_release=hotkey.release)
      listener.start()

我的目标是on_macro为每个热键使用相同的回调(),然后在其内部确定已按下哪个热键并采取相应措施。

尼古拉斯·奥伯特

我注意到,每当我按下ctrl和另一个键时,打印on_macro(key)key参数的输出都是十六进制的,但是问题是Pynput不使用标准的十六进制值。在这种情况下,“ ctrl + a ”将转换为“ \ x01 ”,“ ctrl + b ”将转换为“ \ x02 ”,依此类推。这是你可以做的

import pynput

def on_macro(key):
    key = str(key)
    key = key.replace("'", '')
    # print(key) use this to discover which key has which value

    if key == '\\x01': # key == ctrl + a
        do_your_stuff()
    elif key == '\\x02': # key == ctrl + b
        do_other_stuff()

with pynput.keyboard.Listener(on_press=on_macro) as l:
    l.join()

要发现ctrl按下的键具有哪个值,只需打印on_macro(key)函数key参数即可希望这对您有所帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可变数量的嵌套循环的迭代器

来自分类Dev

在Jmeter中,如何使用beanshell采样器变量设置可变数量的线程?

来自分类Dev

在Jmeter中,如何使用beanshell采样器变量设置可变数量的线程?

来自分类Dev

Pynput侦听器,用于自动完成/热键键入

来自分类Dev

可变数量的孩子

来自分类Dev

在python neat中设置可变数量的输入节点

来自分类Dev

将侦听器设置为JColorChooser

来自分类Dev

将侦听器设置为JColorChooser

来自分类Dev

Symfony在侦听器中设置Cookie

来自分类Dev

添加可变数量的XElement

来自分类Dev

Snakemake可变数量的文件

来自分类Dev

可变数量的嵌套循环

来自分类Dev

可变数量的嵌套For循环

来自分类Dev

绘制可变数量的纹理

来自分类Dev

创建可变数量的视图

来自分类Dev

创建可变数量方法

来自分类Dev

组成可变数量的 ListenableFuture

来自分类Dev

如何设置websocket服务器侦听器?

来自分类Dev

DatePickerDialog侦听器

来自分类Dev

Vuejs侦听器

来自分类Dev

DatePickerDialog侦听器

来自分类Dev

侦听器JavaFX

来自分类Dev

在回调侦听器中设置imageview位图

来自分类Dev

AWS在Load Balancer侦听器上设置https SSL

来自分类Dev

设置jQuery侦听器不在全局范围内

来自分类Dev

如何为画布设置onclick侦听器?

来自分类Dev

在哪里设置所有侦听器?

来自分类Dev

将来自Fragment的侦听器设置为Android服务

来自分类Dev

Android:如何为Acivity.onNewIntent()设置侦听器?