Notepad Text auslesen



  • Hi Leute,

    mal wieder ich 😞 😞 😞 😞 😞
    Ich hab ein Notepadfenster offen im welchen ich mir auf den "Editbereich" ein Handle geholt habe. Ich habd as Handle mit

    SendMessage(l_hwndedit, WM_SETTEXT, 0, (long)"TEST TEST");
    

    ausgetestet und es funktioniert.
    Nun meine Frage:
    Wenn ich versuche mit folgenden Code den "Editbereich" auszulesen bekomme ich eine Textlänge von "0"

    int l_tLength = GetWindowTextLength(l_hwndedit); 
    char *text = new char[l_tLength]; 
    GetWindowText(l_hwndedit,text,l_tLength);
    

    und kann somit auch keinen Text aus dem Editfeld lesen .
    HAt jemand eine Idee ? Braucht man da einen speziellen Zauberspruch um an den Text aus dem Notepad zu kommen 😕 😕 😕

    Danke im Vorab



  • MSDN schrieb:

    However, GetWindowTextLength cannot retrieve the length of the text of an edit control in another application.



  • Hm ich hab den Code jetzt wie folgt geändert

    int l_tLength = 1204;
    char *text = new char[l_tLength]; 
    GetWindowText(l_hwndedit,text,l_tLength);
    

    aber er kann dennoch keine Daten aus dem Editfeld vom Notepad lesen.



  • int main(int argc, char *argv[])
    {
    	HWND hwndNotepad = FindWindow("Notepad", NULL);
    	HWND hwndEdit = FindWindowEx(hwndNotepad, NULL, "Edit", NULL);
    	int nLen = SendMessage(hwndEdit, WM_GETTEXTLENGTH, 0, 0);
    	char *pText = new char[nLen];
    	SendMessage(hwndEdit, WM_GETTEXT, (WPARAM)nLen, (LPARAM)pText);
    
    	std::cout << "Notepad Text: " << pText << std::endl;
    
    	system("pause");
    	return 0;
    }
    


  • Danke miller_m du bist der beste 😃 😃 😃
    Da währe ich in tausend Jahren nicht drauf gekommen noch die Message "WM_GETTEXTLENGTH" laufen zu lassen.
    Echt cool super Sachen 👍 👍 👍


Anmelden zum Antworten