python - Python按下键直到另一个键
问题描述
我已经看过以前的帖子,但找不到有用的东西......
在全球范围内,我的目标是:python 中的脚本,如果我按“k”,它将开始保持“k”,直到我按转义键。但问题是:它没有'k',我不知道为什么
如果有人可以帮助我会很高兴,谢谢
from pynput import keyboard
import pyautogui
def on_press(key):
try:
print('alphanumeric key {0} pressed'.format(
key.char))
if key.char == 'k':
return False
except AttributeError:
print('special key {0} pressed'.format(
key))
def on_release(key):
print('{0} released'.format(
key))
if key == keyboard.Key.esc:
# Stop listener
return False
def listening_k():
with keyboard.Listener(
on_press=on_press) as listener:
listener.join()
return True
def listening_esc():
with keyboard.Listener(
on_release=on_release) as listener:
listener.join()
return True
def hold_key(key):
while listening_k() == True :
pyautogui.keyDown(key)
if listening_esc() == True :
break
hold_key('k')
解决方案
如果按下“k”键,您可以通过拥有一个保存状态(布尔值)的变量来简化操作。每当您按下“k”键时使其为真,按下“esc”键时为假。
推荐阅读
- python - 启动 Selenium Chromedriver 时使用两个 excludeSwitches?
- r - 为后续访问创建假人
- android - 引用和更改菜单项
- php - password_verify 永远不会返回 true
- java - 格式化从 SpringBoot 发送的电子邮件
- amazon-web-services - 如何使用 cognito 访问私有 s3 存储桶
- git - 在 TortoiseGit(或 Git 命令)中,我如何知道我标记了一个版本?
- react-native - 坚持要求 CAMERA_ROLL 许可。得到错误:未定义不是一个对象(评估'_expo.Permission.askAsync')
- python - 将 JSON 文件转换为 Pandas 数据框
- javascript - VSCode .hasOwnProperty() 未在 IntelliSense 中显示