String mit SendMessage() senden?



  • Hallo.

    Ist es möglich einen kompletten String über SendMessage() zu senden? Oder muss ich doch jedes Zeichen einzeln senden?



  • Prozessintern kannst du einfach den Zeiger auf den String versenden. Wenn du aber einen String an einen anderen Prozess senden willst musst du WM_COPYDATA benutzen.



  • Wollen wir mal den Grund hinterher schieben. Intern wird nur ein Pointer verschickt. Pointer haben habe nur innerhalb des selben Prozesses ihr Gültigkeit. WM_COPYFDATA löst das Problem über einen gemeinsamen Speicherbereich, auf den beide Prozesses Zugriff haben.



  • Du kannst auch, wenn du den Text z.B. an ein Editfield senden willst, das so machen:
    SendMessage(editHwnd, WM_SETTEXT, NULL, LPARAM(L"Hello"));

    Ich hoffe das konnte dir helfen



  • SetWindowText(GetDlgItem(hWnd,IDC_EDIT1),"Der Text");
    

    Geht auch ganz gut.
    Wenn die den HWND des Textfeldes hast kannst du den auch direkt einfügen.


Log in to reply