2014-01-16 44 views
5

我想讀取應用程序的'DataGridView'。有一個應用程序,其中有許多孩子的窗戶。下面是一個應用程序,其中包含我想讀的DataGridView窗口的畫面,我已經強調了,我想讀如何讀取另一個應用程序的datagridview

application

我搜索過UISPY窗口中的窗口,這裏是窗口和其中的datagridview的圖片。我強調了我想要閱讀的控制。

enter image description here

我用這個代碼(WINAPI)讀取控制,但我得到一個空字符串

public object WindowText(IntPtr hWnd) 
{ 
    object obj2 = ""; 
    if (hWnd.Equals(IntPtr.Zero)) 
    { 
     return ""; 
    } 
    // 0x111 is WM_COMMAND 
    MainModule.SendMessage(hWnd, 0x111, (IntPtr)0x81eb, IntPtr.Zero); 
    MainModule.StrData = MainModule.StrData + Clipboard.GetText(); 
    // 0x307 is WM_DESTROYCLIPBOARD 
    MainModule.SendMessage(hWnd, 0x307, IntPtr.Zero, IntPtr.Zero); 
    return obj2; 
} 

我也試過UI自動化,但我沒有成功的閱讀它也。
datagridview有一些每秒更新的單元格(實時數據),我想讀取並存儲它。 我想讀取單元格和列(Symbol,Bid,Ask)和單元格內容(AUDCAD,AUDCHF)等。

+0

我不明白你想用這些'SendMessage'來做什麼 – manuell

+0

它的一個winapi實例閱讀另一個應用程序的內容像這樣http://i.stack.imgur.com/rnvwI.jpg –

+0

試試WM_GETTEXT http://msdn.microsoft.com/en-us/library/windows/desktop/ms632627%28v=vs.85%29.aspx如果這不是一個自定義控件,那麼每個單元格都應該包含一個「編輯」 - 控件。例如Powerbuilder有一個沒有編輯控件的網格控件。他們繪製整個控件而不是編輯控件列表。 – user743414

回答

0

UI Spy使用UI Automation,而不是windows消息。由於控件聲稱是數據網格,因此您應該可以通過查找UIA_ControlTypePropertyId等於UIA_DataGridControlTypeId的元素,然後檢查適當的子元素,以便能夠find the item

相關問題