2012-02-21 55 views

回答

3

這是possible, but it's a lot of work,而不是適用於所有情況。

的關鍵要求是,該目標控制:

  • 有它自己的HWND,優選地具有公知的和穩定的類名

  • 具有定義良好的通信的方式從另一個進程的控制。使用一些Windows消息(如Win32公共控件)的控件屬於此類,就像MS Internet Explorer控件一樣,該控件暴露了廣泛的接口(IHTMLDocument)。

但是,如果控制不具有外部訪問其信息的一些方式,那麼UI自動化也不會有多大效果:所有UIA在這裏做的是讓您在插槽中的適配器類到其現有的框架;但它並沒有給你任何新的或額外的工具來處理首先獲取基礎信息的問題。

舊的VB時代的ActiveX控件是一個挑戰:如果你可以在窗體上獲得一個控件,你可以使用各種COM接口導航到該窗體上的其他控件並訪問它們的屬性。但問題在於,你不能從另一個過程輕鬆完成此任務。而且這些ActiveX控件中很少(如果有的話)支持任何類型的Windows消息,因爲它們假設客戶端代碼將使用COM接口。

+0

謝謝你的回覆。它幫助我設置了適當的位置。據我所知,現在要走的路是通訊或編組。我會在解決問題時發佈解決方案。 – 2012-02-27 07:54:09