2016-11-07 120 views
3

我在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

是的。這是一個複製粘貼錯誤。 –

回答

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 

應該工作。