Ich möchte ein 'DataGridView' einer Anwendung lesen. Es gibt eine Anwendung, in der viele untergeordnete Fenster vorhanden sind. Hier ist ein Bild von dieser Anwendung und das Fenster der Datagridview enthält, die wir lesen wollen, habe ich aus dem Fenster hervorgehoben, die ichWie lese ich eine Datagridview einer anderen Anwendung
Ich habe das Fenster durch UISPY gesucht und hier lesen will, ist das Bild des Fensters und die Datagridview darin. Ich habe die Kontrolle hervorgehoben, die ich gelesen werden möchte.
Ich habe diesen Code (Winapi) verwendet, um die Steuerung zu lesen, aber ich bin immer einen leeren String
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;
}
Ich habe auch UI Automation versucht, aber ich war nicht erfolgreich in Lesen Sie es auch durch.
Die Datagridview hat einige Zellen, die jede Sekunde aktualisiert werden (Live-Daten) und ich möchte es lesen und speichern. Ich möchte die die Zellen und Spalten (Symbol, Bid, Ask) und der Zellinhalt (AUDCAD, AUDCHF) usw.
Ich verstehe nicht, was Sie mit diesen 'SendMessage' versuchen wollen – manuell
es ist eine winapi-Instanz zum Lesen der Inhalte einer anderen Anwendung wie dieser http://i.stack.imgur.com/rnvwI.jpg –
Versuchen WM_GETTEXT http://msdn.microsoft.com/en-us/library/windows/desktop/ms632627%28v=vs.85%29.aspx Wenn dies kein benutzerdefiniertes Steuerelement ist, sollte jede Zelle eine "Edit" -Kontrolle enthalten . Zum Beispiel hat Powerbuilder ein Gitter-Steuerelement, das keine Bearbeitungssteuerelemente hat. Sie zeichnen das gesamte Steuerelement und keine Liste der Bearbeitungssteuerelemente. – user743414