python - 是否可以在不再次运行 if 语句的情况下按下键
问题描述
我正在尝试用媒体 next-prev 键替换卷媒体键。问题是按下或调高音量键。
from pynput.keyboard import Key, Listener, Controller
keyboard = Controller()
def on_press(key):
if key == Key.media_volume_up:
keyboard.press(Key.media_down)
keyboard.press(Key.media_next)
if key == Key.media_volume_down:
keyboard.press(Key.media_volume_up)
keyboard.press(Key.media_previous)
def on_release(key):
pass
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
我试图让它像这样,但它也触发了前面的 if 语句,所以它是循环的。
from pynput.keyboard import Key, Listener, Controller
keyboard = Controller()
block = False
def on_press(key):
global block
if not block:
if key == Key.media_volume_up:
block = True
keyboard.press(Key.media_volume_down)
keyboard.press(Key.media_next)
block = False
if key == Key.media_volume_down:
block = True
keyboard.press(Key.media_volume_up)
keyboard.press(Key.media_previous)
block = False
def on_release(key):
pass
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
解决方案
推荐阅读
- react-native - 在 React Native 中显示 html-tags
- windows - 如何创建 Postgresql Http 查询请求
- python - 如何在网页中运行 Python 脚本?
- android - MotionLayout 中的回收站可见性更改
- performance - pouchdb 网站怎么这么快?网站上使用了什么缓存机制
- highcharts - 带 Highchart 哑铃图的范围选择器
- sql - 在 SQL 查询中获取重复的结果
- python - 我正在尝试检查 Linux Mint 上的目录中是否存在文件但收到错误
- java - 从代码控制 Android 应用程序的卸载程序操作
- c++ - 试图重载和运算符“+”但无法正确定义类构造函数