sendmessage, string an anderen prozess senden. problem mit wparam / lparam..



  • moin zusammen 😉
    ich hab gestern abend erst angefangen sachen zhu dem thema zu suchen und weder die threads die ich gefunden habe bisher, noch im netz allgemein hat mir bisher an der stelle gehoolfen..

    mein problem ist folgendes, ich abe sone art server laufen, an dessen prozess von nem kleinen programm das mit einem string als parameter aufgerufen wird, eben diesen string an den server-prozess senden soll, damit dieser das ganze verarbeitet.

    bisher bin ich soweit gekommen, eine eigene message zu deklarieren & die message vom "client" an das server programm geht ohne probleme.
    allerdings ist mir nicht ganz klar wie ich über wparam & lparam jetzt meinen genannten string senden kann, da SendMessage in dem falle nur longint will o_o

    ich poste mal client & server code als anhang.

    client (sender)

    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    #define WM_DELETEALL WM_USER + 0xC000
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    
    TForm1 *Form1;
    HWND                hwnd_Server;
    AnsiString textfolge = "text text text";
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    
    hwnd_Server = FindWindow(NULL,TEXT("Form1"));
    SendMessage(hwnd_Server,WM_DELETEALL, 0,0 );
    
    }
    

    anstelle der 0,0 bei sendmessage muss ich halt nun irgendwie meinen string einbauen 😉

    Empfänger:

    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    #define WM_DELETEALL WM_USER + 0xC000
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::onDELETEALL(TMessage& Msg)
    {
    Application->MessageBox("msg","msg",0);
       Label1->Caption = LOWORD(Msg.LParam);
       Label2->Caption = HIWORD(Msg.LParam);
       Label3->Caption = Msg.LParam;
       Label4->Caption = Msg.LParam;
       inherited::Dispatch(&Msg);
    }
    

    die labels dienen zum überprüfen was ankam..

    so währ schön wenn mir jemand helfen kann,
    evtl bin ich ja sogar ganz aufm holzweg; aber mir viel keine andre idee ein 😉

    Mfg



  • header ausm empfäger, das der überhaupt weis was los is:

    protected:
      void __fastcall onDELETEALL(TMessage&);
    
      BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_DELETEALL, TMessage, onDELETEALL);
      END_MESSAGE_MAP(inherited)
    };
    


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

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

    Dieses Posting wurde automatisch erzeugt.


Log in to reply