我是 python 编程的初学者,我一直在开发一个非常简单的程序来帮助我在应用程序中自动执行任务。基本上,在按下 F5 时,我希望执行一系列特定的命令,而在按下 F6 时,我希望也运行另一组特定的命令。
我的方法是使用 pynput 库: 此代码用于检测我何时按下 f5 或 f6:
with keyboard.GlobalHotKeys({
'<f5>': on_activate_f5,
'<f6>': on_activate_f6}) as h:
h.join()
然后是执行指令的代码(函数 on_activate_f5 导致此):
def leave():
printer("----LEAVE INITIATED----")
Controller().press(Key.esc)
Controller().release(Key.esc)
print("--step1 complete--")
pyautogui.click(300,420)
print("--step2 complete--")
pyautogui.click(920,560)
print("--step3 complete--")
printer("----LEAVE COMPLETE----")
但是我在上面的代码中遇到了几个问题:
1:首先,“f”键无法正常工作。当我用这个替换热键代码时...
with keyboard.GlobalHotKeys({
'<ctrl>+<alt>+h': on_activate_f5,
'<ctrl>+<alt>+j': on_activate_f6}) as h:
h.join()
...然后正确检测到 ctrl alt 和 h / j 键。然而,当我尝试使用所有 f 键(f6、f5、f10 等)时,虽然我没有收到错误消息,但 pynput 似乎没有检测到任何一个键:/
2:每当我尝试使用 pynput 键盘按转义键时,它只会离开应用程序窗口返回控制台。我根本不知道为什么。它实际上与其他键(key.space)等完美配合,但每次我使用 key.esc 时它都会离开窗口。
代码本身实际上要长得多(大约 300 行),因为它包括基本的 tkinter GUI、线程等。
如果问题出在代码的其余部分,那么如果有人觉得有必要,我将发送整个版本。但根据我的测试,我非常有信心错误就在这几行中。
基本上,如果有人可以向我解释“f”键如何/为什么不能与 pynput 一起使用以及为什么使用 Controller().press(key.esc) 离开窗口,我将非常感激。
补充信息:
节省您的时间,有任何问题都可以问!
您可以在任何窗口中按“alt+esc”找到答案。 如果在从热键中释放 alt 键之前按程序中的 esc 键,窗口将立即关闭,因为“alt+esc”是关闭窗口的热键。
“