Hallo,
ich möchte von einem Programm zu einem anderen eine Nachricht senden, doch das funktoniert nicht.
Hier mal mein Code:
Delphi-Quellcode:
//die 2. Anwendung
var
Wnd: HWnd;
MyCopyDataStruct: TCopyDataStruct;
begin
// Hier stehen noch andere Teile die ein Semaphore erstellen und das Handle (wnd) abfragen
//das funktioniert auch alles nur die Message nicht
If ParamStr(1) <> '
'
then with MyCopyDataStruct
do
begin
dwData:=0;
cbData:=Length(PChar(ParamStr(1))) + 1;
lpData:=PChar(ParamStr(1));
SendMessage(Wnd, WM_COPYDATA, Application.Handle, Integer(@MyCopyDataStruct));
end;
//die 1. Anwedung, die auf die Message eigentlich warten sollte
procedure TForm1.WMCOPYDATA(
var Msg: TWMCopyData);
var
sText:
array of Char;
begin
SetLength(sText,Msg.CopyDataStruct.cbData);
StrLCopy(PChar(sText), Msg.CopyDataStruct.lpData, Msg.CopyDataStruct.cbData);
NewAVObject(PChar(sText));
//Prozedur zu weiteren Verarbeitung
end;
Warum kommt keine Nachricht an? Wird sie gar nicht erst gesendet? Das
Handle (Wnd) zu dem die Nachricht gesendet wird stimmt aber.
Ich bin schon seit 3 Tagen am verzweifeln, ich hoffe mir kann jemand helfen.
Gruß
Mazel