2011-09-29 91 views
0

我正在開發一個應用程序在python中發送鍵盤事件到另一個外部應用程序。我使用pywin32包將外部應用程序,併發送所需的鍵:發送關鍵事件到子窗口

import win32com.client as w32 
shell = w32.Dispatch("WScript.Shell") 

shell.AppActivate(desired_application) 
shell.SendKeys("{ENTER}") 

我使用的外部應用程序有一個虛擬鍵盤,接收鍵盤事件的文本區域。我想將鍵盤事件(在這種情況下爲'ENTER')發送到鍵盤區域(因爲鍵盤正在對字母進行掃描並用Enter鍵選擇所需的字母)。但是,我的應用程序將關鍵事件發送到文本區域而不是鍵盤。

我試圖從win32gui中得到我想要的FindWindow和EnumChildWindow窗口的句柄...那麼,有沒有辦法將密鑰發送到外部應用程序的特定子窗口?

回答

0

我設法選擇具有EnumChildWindow的特定句柄(枚舉應用程序的所有句柄)並使用PostMessage發送消息。

import win32api 
    win32api.PostMessage(handler, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)