模拟ALT + TAB在Python

问题描述:

我在Windows 8.1运行此代码:模拟ALT + TAB在Python

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中并没有这样做。我能做什么?

+0

我假设最后一行中的“2”只是一个复制粘贴错误,对吗?否则,我可以确认这在Windows 7上适用于它的价值。 – DeepSpace

+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 

应该工作。