2014-01-16 27 views
5

アプリケーションの「DataGridView」を読みたいと思います。多くの子ウィンドウがあるアプリケーションがあります。ここでは、そのアプリケーションと私が読みたいのDataGridViewを含むウィンドウの絵があり、私はここで私は私がUISPYてウィンドウを検索した別のアプリケーションのデータグリッドビューを読む方法

application

読みたいウィンドウを強調してきましたウィンドウ内のピクチャとその中の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には毎秒更新されるいくつかのセル(ライブデータ)があり、それを読み込んで保存したいと思います。 私はセルと列(シンボル、入札、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のスパイはUI Automationを使用して、いないウィンドウメッセージ。コントロールがデータグリッドであることを主張しているので、UIA_ControlTypePropertyIdUIA_DataGridControlTypeIdに等しい要素を探し、必要に応じて子を調べることによって、find the itemにできるはずです。

関連する問題