2013-10-02 106 views
1

我想用SendKeys.SendWait("keys")將一些按鍵發送到最小化或不可見的應用程序。Win32 SendKeys.SendWait(「keys」)最小化應用程序

從實驗上看,它只在我發送給它的應用程序具有焦點並且可見時才起作用。我試圖在應用程序不可見時給予重點關注,但無濟於事。我希望我錯過了一些東西。 有沒有辦法做到這一點?

背景:

我「米試圖迫使第三方安裝不支持靜默安裝是安靜和自動化地包我聯繫誰創造安裝程序的人,和他們沒」 t啓用無提示安裝並且不會發布新安裝

安裝程序是一個InstallAnywhere軟件包,用於加速Java AWT,因此,Spy ++不會顯示按鈕的ID。主窗口的手柄,這使我相信我必須使用SendKeys.SendWait("keys")發送密鑰才能獲得我需要的自動化。

我可以通過使用SendKeys.SendWait("%n")(「Alt-N」使其按下「下一步」按鈕)來完成安裝,但我想隱藏窗口。因爲我無法分辨特定舞臺何時完成,所以我定期輪詢它,然後按相應的鍵。這是一個巨大的黑客攻擊,但我沒有找到更好的選擇。問題是,我不想最小化然後恢復每個這些按鍵。有一個比這更好的方法,對吧?

使用C#.NET 4.0的Windows 7

回答

1

遺憾的是鍵盤輸入變爲活動窗口,所以任何一個模擬鍵盤輸入的行爲相同的方式。

如果他們添加了輔助鉤子,那麼您可以使用UI automation framework。以下是Raymond's blog的快速示例。

+0

看起來不像他們將可訪問性掛鉤添加到安裝程序。謝謝你的提示。 – kmort