2013-08-02 49 views
0

如何閱讀另一個應用程序列表視圖和子列表視圖?一旦在主視圖上點擊一個項目,該程序就會有一個主要的列表視圖和其他一些小型列表視圖。c#讀取另一個應用程序列表框和子列表框?

我想創建一個可以讀取所有列表視圖的應用程序,我該怎麼做呢?達到此目的的最佳方法是什麼?

+0

它是多麼容易取決於其他應用程序的編碼。如果它使用Win32,可以P /調用FindWindow/VirtualAllocEx/GetWindowText/ReadProcessMemory函數,並且非常容易。 –

+0

另一個應用程序是您想要讀取的應用程序,是由您製作的嗎? – Renan

+0

@Renan不用它的第三方Windows應用程序 –

回答

2

有很多方法可以做到這一點。

支持的方式是使用自動化API,如UIAutomation,它非常易於編程。如果其他應用程序正在使用標準的Windows列表視圖控件,則應該可以通過UIAutomation訪問它。如果其他應用程序正在使用非窗口控件(例如WPF,Qt),那麼您將依賴於實現UIAutomation支持的應用程序。

另一個常見的嘗試方法是將Windows消息發送到列表視圖控件。首先涉及枚舉應用程序主窗口的子窗口以查找列表視圖窗口。然後您可以發送控制消息來獲取其內容。這聽起來很容易,但實際上很棘手。原因是這些消息要求您提供指向其他進程地址空間中有意義的結構的指針。這包括撥打電話OpenProcess,VirtualAlloc,WriteProcessMemory, ReadProcessMemory等。要想正確處理是非常棘手的。

在我看來,你應該選擇自動化API。

+0

謝謝,我一定會研究這個。 –

相關問題