我想要一个Python脚本在后台不断运行,并在按下某个键盘快捷键时执行某些操作,例如WIN+a。你知道吗
我读过Key Listeners in python?和使用pynput
的解决方案,但它似乎可以工作,并在窗口/控制台有焦点时检测按键。你知道吗
问题:如何在Python中检测键盘快捷键,例如WIN+a,并在发生时启动函数,即使焦点在其他地方(例如浏览器等)?
注意:我的操作系统是Windows。另外,我更希望Python脚本只“注册”监听WIN+A(这是否存在?),并且不会监听所有按键(否则它或多或少会是一个键盘记录程序,我不希望这样!)。你知道吗
以下是我尝试过的:
import pyHook, pythoncom
def OnKeyboardEvent(event):
if event.Ascii == 8: # backspace
print('hello')
return True
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
我想避免这样做有两个原因:第一,我发现听所有的按键非常麻烦,第二,这个关于pyhook
的常见例子在很多地方都有一个bug:^{pip install PyHook3
在Windows上失败。你知道吗
事实上,我错了:
pynput
确实能够全局检测按键,而不仅仅是当前活动的窗口。你知道吗1) 使用
pynput
下面的代码使用WIN+W启动应用程序
notepad
,使用WIN+C启动应用程序calc
:2) 使用
ctypes
和win32con
这是受@fpbhb在评论中引用的this post启发的。它收听WIN+F3和WIN+F4。你知道吗
相关问题 更多 >
编程相关推荐