Python 我正在尝试制作宏/热键
它就是不起作用,我说了一个错误Python 我正在尝试制作宏/热键,python,macros,hotkeys,Python,Macros,Hotkeys,它就是不起作用,我说了一个错误 AttributeError: 'Controller' object has no attribute 'is_pressed' 代码: 有人能帮帮我吗 pynput有一个特殊的类Listener来捕捉按下的键。它在线程中运行,不需要,而为True则不需要阻止主代码 按ESC停止 from pynput.keyboard import Key, Controller, Listener def on_press(key): print('{} pre
AttributeError: 'Controller' object has no attribute 'is_pressed'
代码:
有人能帮帮我吗
pynput
有一个特殊的类Listener
来捕捉按下的键。它在线程中运行,不需要,而为True则不需要阻止主代码
按ESC
停止
from pynput.keyboard import Key, Controller, Listener
def on_press(key):
print('{} pressed'.format(key))
#print(dir(key))
try:
if key.char == 'u':
keyboard.press('w')
keyboard.release('w')
except Exception as ex:
print(ex)
def on_release(key):
print('{} release'.format(key))
if key == Key.esc:
# Stop listener
return False
# --- main ---
keyboard = Controller()
listener = Listener(on_press=on_press, on_release=on_release)
listener.start()
# ... other code ...
listener.join()
顺便说一句:
如果您希望在系统中使用全局宏/热键,并使用Linux,那么您可以为此使用特殊程序。它是用Python创建的,它有GUI来创建宏/脚本/等等
如果您希望在系统中使用全局宏/热键并使用Windows,则可以使用流行的
如果你想在一些GUI
程序中创建宏/热键,那么你应该使用GUI
函数来实现这一点。视图,下面是它的一个片段
全局热键
键盘监视器的一个常见用例是对全局热键做出反应。
由于侦听器不维护任何状态,热键涉及
多个键必须将此状态存储在某个位置
pynput为此提供类pynput.keyboard.HotKey
。它包含两种更新状态的方法,设计为
可与键盘侦听器互操作:pynput.keyboard.HotKey.按
和pynput.keyboard.HotKey.release
,可以作为
侦听器回调
[……]
这将创建一个热键,然后使用侦听器更新其
状态同时按下所有指定键后,
激活时将调用
请注意,键是通过pynput.keyboard.Listener.canonical传递的
在传递到热键
实例之前。这是为了删除任何
来自关键事件的修改器状态,并使用
多个物理按钮
方法pynput.keyboard.HotKey.parse
是一个方便的函数
将快捷方式字符串转换为键集合。请看它的
有关更多信息,请参阅文档
要注册多个全局热键,请使用便利类
pynput.keyboard.GlobalHotKeys
:
pynput
有一个特殊的类Listener
来捕捉按下的键,并且它不需要而为True
<代码>控制器
仅用于发送新钥匙。你为什么认为必须有被按下了?您检查了吗?为什么您认为按下了属性应该存在?
from pynput.keyboard import Key, Controller, Listener
def on_press(key):
print('{} pressed'.format(key))
#print(dir(key))
try:
if key.char == 'u':
keyboard.press('w')
keyboard.release('w')
except Exception as ex:
print(ex)
def on_release(key):
print('{} release'.format(key))
if key == Key.esc:
# Stop listener
return False
# --- main ---
keyboard = Controller()
listener = Listener(on_press=on_press, on_release=on_release)
listener.start()
# ... other code ...
listener.join()