Hej! Läs här, löser sannolikt ditt problem:Kan med SendMessage men inte ta emot
Jag försöker skicka en kort sträng (10 tecken) mellan 2 program med med hjälp av SendMessage. Det går att sända men mottagar-delen verkar inte fungera. Här är koden:
<b>Sändare:</b>
procedure TSandare.Sanda(Sender: TObject);
var clRec: Integer; Txt: String; DataStruk: TCopyDataStruct;
begin
Txt:='ABCDEF';
DataStruk.dwData:=0;
DataStruk.cbData:=Length(Txt) +1;
DataStruk.lpData:=PChar(Txt);
clRec:=SendMessage(FHnd, WM_COPYDATA, Integer(Handle), Integer(@DataStruk)); // FHnd är ok (Fönstrets Handle), och definieras tidigare (global variabel)
end;
<b>Mottagare:</b>
procedure WMCopyData(var Msj: TWMCopyData); message WM_COPYDATA;
...
procedure TMott.WMCopyData(var Msg: TWMCopyData);
begin
Prg:='';
if PChar(Msg.CopyDataStruct.lpData)='ABCDEF' then Prg:='Mottaget'; // Prg: global variabel
Msg.Result:=9;
end;
procedure TMott.Inkom(Sender: TObject);
begin
Application.ProcessMessages;
ShowMessage('Prg= ' + Prg); // -> Variabel PRG förblir tomt !
end;
Tack på förhand för tips.
Adalte.
.Sv: Kan med SendMessage men inte ta emot
http://delphi.about.com/od/windowsshellapi/a/wm_copydata.htm
//Marco.