Ermitteln eines Textfeldes von einem externen Programms?



  • Hallo,
    wie kann ich von einem externen Programms über Window-Handle den Inhalt des Textfeldes in mein C++ Programm im RichEdit übertragen?

    Ich wäre euch sehr dankbar, wenn ihr mir helfen könntet.

    MfG



  • Hat keiner ne idee wie ich das machen könnte?

    Also nochmal,
    Ich öffne jetzt z.B. den Texteditor von Windows und gebe einen beliebigen Text ein, so und jetzt möchte ich mit C++ Builder etwas versuchen und zwar, füge ich bei meiner Form einen RichEdit1 ein und auf Button1->Click soll im RichEdit1 dieser Text stehen welche im Texteditor von Windows steht.

    Mit HANDLE kann ich das Formular finden, aber wie kann ich das auslesen?

    MfG



  • Dieser Thread wurde von Moderator/in akari aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Mit WM_GETTEXT.



  • Vielen Dank, ich hab das jetzt hinbekommen.
    Aber wenn ich das alles in einem Timer packe und Interval auf 1 stelle, da es jede Millisekunde Aktualisiert werden soll, hängt sich mein PC nach ca. halbe Minute auf.
    Ich habe mal Application->ProcessMessage(); benutzt, aber leider hilft das nicht.

    Hier mal der Code:

    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
        HWND hwndTest = FindWindow(NULL,"Test Fenster");
        HWND hwndEdit = FindWindowEx(hwndTest, NULL, "Edit", NULL);
        int nLen = SendMessage(hwndEdit, WM_GETTEXTLENGTH, 0, 0);
        char *pText = new char[nLen];
        SendMessage(hwndEdit, WM_GETTEXT, (WPARAM)nLen, (LPARAM)pText);
        RichEdit2->Text = pText;
        Application->ProcessMessages();
    }
    

    Woran kann das liegen?

    MfG



  • Jede Millisekunde wirst du es nicht aktualisieren können, es gibt auch noch andere Threads, die Rechenzeit haben wollen. Du musst den allozierten Speicher schon auch wieder freigeben.



  • Danke.
    Aber wie könnte ich das machen, dass es immer 1 Millisekunde Aktualiesiert ohne das sich das Programm aufhängt?

    MfG


Anmelden zum Antworten