使用python键盘模块时如何忽略某个按键?

问题描述 投票:0回答:1

我有一段简单的代码,可以启动随机文件,然后使用键盘模块对该文件执行某些操作。

例如。

def my_exit():
    "exits"
def nextfile():
    "does the next thing"
def deletefile():
    "deletes the thing"

keyboard.add_hotkey("n", nextfile)
keyboard.add_hotkey("d", deletefile)
keyboard.add_hotkey("esc", my_exit)

for g in allfiles:
    while True:
        chosen = random.choice(allfiles)
        os.startfile(chosen)
        key = keyboard.read_key()

如果我所做的只是按其中一个热键,则效果很好。但问题是,如果我按不同的键(例如向下翻页)来控制已打开的文件,它不会对热键做出反应 - 就像 python 脚本失去了焦点一样。

这是我在这里发表的第一篇文章,我确信对于那些知道自己在做什么的人来说,这是一个简单的修复。谢谢

python python-3.x
1个回答
0
投票

keyboard.read_key()
等待按下某个键(任意键),然后继续。我不认为这就是你打算做的。我也不确定你的循环想要完成什么——你随机打开文件,次数等于文件总数。

也许这可以帮助您开始 - 这会按顺序迭代文件,并在按下“下一个”热键时前进到下一个文件。

def my_exit():
    sys.exit()
def deletefile():
    "deletes the thing"

keyboard.add_hotkey("alt+d", deletefile)
keyboard.add_hotkey("esc", my_exit)

for g in allfiles:
    os.startfile(g)
    # block forever until user hits keys to go to next file or exits
    keyboard.wait("alt+n") # hotkey to go to the next file

我将删除命令更改为 ALT+D,以允许您在不导致脚本执行操作的情况下键入内容 - 但您可以按照自己的意愿实现。

© www.soinside.com 2019 - 2024. All rights reserved.