Python Ctypes键盘偶数

2024-09-27 07:22:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些python(2.7.13)代码,如下所示:

import win32api, win32con, 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键代码或左菜单键代码。(我知道有其他方法可以关闭外壳,但这可以关闭任何东西。)

我想知道的是:

  1. 为什么要按住alt键?在
  2. 如何在代码中阻止这种情况?在
  3. 为什么这不适用于alt键代码或左菜单键代码?在

提前感谢任何帮助过的人。在


Tags: key代码importrighteventaltctypesmenu
2条回答

可以使用pywinauto模拟用户输入。你的问题已经在里面解决了。子模块pywinauto.keyboard可以这样使用:

from pywinauto.keyboard import SendKeys
SendKeys('%{F4}{PAUSE 0.2}{ENTER}') # press Alt+F4, pause, press Enter

只需在前面的命令行中运行pip install pywinauto。在

我不知道你是否还在寻找答案,但我相信问题在于你没有模拟按键命令。添加下面的三行代码应该能够模拟您正在寻找的内容。在

对于下面的代码,我假设您需要按顺序(即按右菜单键,按F4键,然后按enter键)。但是,如果您想按住它,就像Shift+'a'一样,您将调用两个键按下事件,然后调用两个键向上事件。在

import win32api, win32con, 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

相关问题 更多 >

    热门问题