Hallo,
ich habe 2 nahezu identische Programme geschrieben, die sich lediglich im Fenstertitel unterscheiden und dem jeweils anderen Programm eine Nachricht senden sollen.
Die Nachricht wird auch in dem anderen Program empfangen, doch die Daten im LParameter sind leider nicht vorhanden. Was mache ich da falsch. Hier sind mal die Auszüge aus der H und Cpp Datei:
ich habe 2 nahezu identische Programme geschrieben, die sich lediglich im Fenstertitel unterscheiden und dem jeweils anderen Programm eine Nachricht senden sollen.
Die Nachricht wird auch in dem anderen Program empfangen, doch die Daten im LParameter sind leider nicht vorhanden. Was mache ich da falsch. Hier sind mal die Auszüge aus der H und Cpp Datei:
Code:
typedef struct { int count; char buf[100]; } TMsgPara; class TForm1 : public TForm { __published: // Von der IDE verwaltete Komponenten ... private: // Anwender-Deklarationen void __fastcall OnMessage(TMsgPara& Message); TMsgPara PData; public: // Anwender-Deklarationen __fastcall TForm1(TComponent* Owner); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_USER+1, TMsgPara, OnMessage) END_MESSAGE_MAP(TForm) };
Code:
void __fastcall TForm1::SpeedButton1Click(TObject *Sender) { HWND hdl = FindWindow(NULL,"Programm #2"); if (hdl) { PData.count = Edit1->Text.Length(); for (int i=0; i<PData.count;i++) PData.buf[i] = Edit1->Text[i+1]; SendMessage ( hdl , WM_USER+1 , (WPARAM)0, (LPARAM)&PData); } else Application->MessageBox("Handle nicht gefunden","Fehler",MB_OK); } //--------------------------------------------------------------------------- void __fastcall TForm1::OnMessage(TMsgPara& Message) { AnsiString H = EmptyStr; for (int i=0;i<Message.count;i++) H = H + Message.buf[i]; Edit2->Text = H; } //---------------------------------------------------------------------------
Comment