Inhalt eines Fensters auslesen

  • Hey StageTwo,
    zwar habe ich zurzeit recht wenig Zeit, jedoch stelle ich euch hiermit ein kleines Snippet vor, mit dem man recht simpel den Inhalt eines Fensters auslesen kann. Grund dafür waren einige Anfragen von Membern aus diesem Forum.


    Hilfreiche Programme/Tools:
    Microsoft Spy++ | Download: Klick


    Snippet:
    Benötigte API's / Enums / Konstanten


    Anwendung am Beispiel vom pSRO mBot (Statistic am rechten Rand)

    Code
    1. IntPtr hwnd = p.MainWindowHandle; //MainWindow handle besorgen |p ist der Prozess des Fensters
    2. IntPtr hwndStats = FindWindowEx(hwnd, IntPtr.Zero, "Static", null); //Auf Basis des MainWindow handles den WinEx handle besorgen
    3. int textLen = (int)SendMessage(hwndStats, WM_GETTEXTLENGTH, IntPtr.Zero, null); //Auf Basis des handles die Textlänge ermitteln
    4. StringBuilder sb = new StringBuilder(textLen); //StringBuilder initialisieren, um den Fenstertext zu speichern (Länge entspricht der Textlänge des Fensterinhalts)
    5. SendMessage(hwndStats, WM_GETTEXT, (IntPtr)sb.Capacity, sb); //Fensterinhalt besorgen
    6. String windowText = sb.ToString();


    Hinweiß
    Hin und wieder wird es ein wenig tricky werden, da ihr auch noch mit den GetWindow Konstanten wie "GW_HWNDNEXT" arbeiten werden müsst. Den Rest überlass ich euch erstmal. Bei Fragen oder Hilfestellungen könnt ihr euch gerne melden. Ich werde versuchen so schnell wie möglich zu antworten, auch wenn meine Zeit zurzeit ziemlich begrenzt ist.
    Sorry für die fehlende Ausfühlichkeit.



    Kuh :>