Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python keyboard.add_热键在打开taskmanager后停止工作_Python_Python 3.x_Windows_Keyboard_Hotkeys - Fatal编程技术网

Python keyboard.add_热键在打开taskmanager后停止工作

Python keyboard.add_热键在打开taskmanager后停止工作,python,python-3.x,windows,keyboard,hotkeys,Python,Python 3.x,Windows,Keyboard,Hotkeys,我正在使用python模块键盘创建一个热键,在我打开任务管理器之前,它的工作原理与预期的一样,在打开任务管理器之后,热键停止工作,创建一个新的热键没有任何帮助,任务管理器打开后,热键就不工作了 import keyboard def hello(): print('hello world!') keyboard.add_hotkey('alt+p', hello, args=()) while True: pass 上面的代码只是一个复制问题的示例,我导入模块,创建一个热

我正在使用python模块键盘创建一个热键,在我打开任务管理器之前,它的工作原理与预期的一样,在打开任务管理器之后,热键停止工作,创建一个新的热键没有任何帮助,任务管理器打开后,热键就不工作了

import keyboard

def hello():
    print('hello world!')

keyboard.add_hotkey('alt+p', hello, args=())

while True:
    pass
上面的代码只是一个复制问题的示例,我导入模块,创建一个热键,然后创建一个无限while循环,这样程序就不会退出,热键会一直工作,直到打开任务管理器

我之所以需要使用add_热键而不是任何其他功能,是因为我将在一个更大的程序中使用它,add_热键不会减慢应用程序的速度,但当然,它可能会崩溃,然后只有重新启动程序才能修复它


我已经尝试了很多东西,部分奏效,重新导入模块效果很好,但是我没有办法知道重新导入模块的正确时间,我也可以作为管理员运行程序,这也解决了问题,但是我不希望程序仅仅因为热键功能而以管理员的身份运行。

我正在运行一些测试,我找到了一个答案(在网上某个地方发布一个问题后,回答自己的问题是多么容易啊)

基本上,我的程序没有管理员权限,所以启动任务管理器时键盘模块会暂停,我知道它会暂停,但我认为它破坏了整个模块。实际发生的情况是,我通过按ctrl-shift-esc启动任务管理器,按键在程序中注册,然后管理器启动,程序暂停,当我松开按键时,程序不会注册

因此,每当我按下alt+p时,模块都认为我按下了ctrl-shift-esc-alt-p

要修复它,您只需按全部三个键,但不能同时刷新它


我还没有试过,但我要做的只是在任何键盘按下后让我的程序清除所有的键,这样热键仍能正常工作,在ctrl-shift-esc键后它会挂起,然后取消暂停并清除剩余的输入。

我也遇到了同样的问题,所以很难受。 我终于找到了解决办法! 它使用的是“键盘.钩子键”

这是我的密码

import keyboard


temp = False

def switch(e):
    global temp
    if 'down' in e:
        temp = True
    else:
        temp = False

def check(e):
    global temp
    if temp and 'down' in e:
        print('It works!!')

keyboard.hook_key('alt', lambda e: switch(str(e)))
keyboard.hook_key('p', lambda e: check(str(e)))
keyboard.wait()
“hook_key”仅检测键盘上单个键的“Down”和“Up”事件,因此即使在任务管理器打开后,它也能正常工作