我写了一个python的快捷键脚本,使用到了pynput的globalhotkeys来添加多个组合键。当第一次使用组合键时可以触发指定的函数,但是之后仅仅只需要组合键中的一个键就可以触发这个函数。
from pynput import keyboard
import webbrowser
def openurl():
webbrowser.open('https://google.com')
def esc():
hotkey.stop()
with keyboard.GlobalHotKeys(
{'<ctrl>+0': openurl,
'<ctrl>+o': esc
}
)as hotkey:
hotkey.join()
比如:上面的代码实现了ctrl + 0的组合键打开谷歌的网站,如果刚运行,使用ctrl或者0是无法触发的,只有使用了组合键才可以启动。但是一旦启动了一次后,之后仅需要使用ctrl键就可以触发。
这个问题有时出现,有时又不出现,很奇怪。
引用 皆我百晓生 小程序回复内容作答:
这是因为在Windows系统中,HotKey实现有时会出现延迟或冲突的问题。可以尝试使用以下方法解决这个问题:
import time
time.sleep(1) # 延迟一秒钟,确保系统准备就绪
pynput.keyboard.Listener
,它也可以注册全局快捷键。如果以上方法无法解决问题,可以考虑使用其他库或方法实现类似的功能。