在Python中模拟alt + tab

时间:2016-11-07 13:39:57

标签: python ctypes

我在Windows 8.1中运行此代码:

import ctypes, time

ctypes.windll.user32.keybd_event(0x12, 0, 0, 0) #Alt
ctypes.windll.user32.keybd_event(0x09, 0, 0, 0) #Tab

time.sleep(2)

ctypes.windll.user32.keybd_event(0x09, 0, 2, 0) #~Tab
ctypes.windll.user32.keybd_event(0x12, 0, 2, 0) #~Alt

我希望这段代码模拟按住Alt键,按住Tab键,等待2秒,释放Tab键,然后释放Alt键,但它不起作用。代码无法按住键,只需按下(按下并释放)键即可。

我之前和之前都试过这个代码,但是在Windows 8.1中没有。我该怎么办?

2 个答案:

答案 0 :(得分:0)

这样可行,但你必须在alt和tab之间有一个延迟。

from time import sleep
import ctypes

user32 = ctypes.windll.user32

user32.keybd_event(0x12, 0, 0, 0) #Alt
sleep(1)
user32.keybd_event(0x09, 0, 0, 0) #Tab
sleep(1)
user32.keybd_event(0x09, 0, 2, 0) #~Tab
sleep(0.1)
user32.keybd_event(0x12, 0, 2, 0) #~Alt

应该工作。

答案 1 :(得分:0)

这是一个稍微严格的alt-tab方法。

import pyautogui,time

pyautogui.keyDown('alt')
time.sleep(.2)
pyautogui.press('tab')
time.sleep(2)
pyautogui.keyUp('alt')

重复     pyautogui.press('tab')  表示您要移过的次数,并且如userNo99所述,您需要添加一些时间。sleep(.5)在操作之间产生延迟。