我有一些Python 2.7代码如下:
import ctypes
ctypes.windll.user32.keybd_event(0xA5, 0, 0, 0) # Right Menu Key
ctypes.windll.user32.keybd_event(0x73, 0, 0, 0) # F4
ctypes.windll.user32.keybd_event(0x0D, 0, 0, 0) #Enter Key
每当我运行代码时,即使我关闭了 Python,我的计算机也会出现错误。似乎总是按下 alt 键。如果我手动按 alt 键,此操作就会停止。
另一件事是此代码旨在关闭 shell。它仅适用于右侧菜单键代码,不适用于 alt 键代码或左侧菜单键代码。 (我知道还有其他方法可以关闭 shell,但这会关闭任何内容。)
这是我想知道的:
- 为什么要按住 alt 键?
- 如何在代码中停止这种情况?
- 为什么此功能不适用于 alt 键代码或左侧菜单键代码?
提前感谢任何提供帮助的人。
最佳答案
我不知道您是否仍在寻找答案,但我相信问题在于您没有模拟按键向上命令。添加下面的三行代码应该能够模拟您正在寻找的内容。
对于下面的代码,我假设您需要按顺序(即按右侧菜单键,按 F4 键,然后按 Enter)。但是,如果您想按住它(如 Shift + 'a' 的情况),您将调用两个按键事件,然后调用两个按键事件。
import ctypes
ctypes.windll.user32.keybd_event(0xA5, 0, 0, 0) # Right Menu Key Down
ctypes.windll.user32.keybd_event(0xA5, 0, 0x0002, 0) # Right Menu Key Up
ctypes.windll.user32.keybd_event(0x73, 0, 0, 0) # F4 Down
ctypes.windll.user32.keybd_event(0x73, 0, 0x0002, 0) # F4 Up
ctypes.windll.user32.keybd_event(0x0D, 0, 0, 0) #Enter Key Down
ctypes.windll.user32.keybd_event(0x0D, 0, 0x0002, 0) #Enter Key Up
关于Python Ctypes 键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43724561/