Hallo zusammen,
ich sende über SendMessage eine Nachricht an ein anderes Programm.
Dabei wird die Nachricht manchmal am Ende verfälscht. Sie wird abgeschnitten und teilweise andere Zeichen hinzugedichtet.
Zu senden der Nachricht:
Delphi-Quellcode:
type TNachrichtTyp = (ntCreateSnapShot);
var
copyDataStruct : TCopyDataStruct;
res : integer;
Nachricht :
string;
begin
Nachricht := '
B;2;160569;Di, 12.06.2012 14:08;DAH-TH480;DAH-TH481';
copyDataStruct.dwData := Ord(ntCreateSnapShot);
copyDataStruct.cbData := Length(Nachricht);
copyDataStruct.lpData := PChar(Nachricht);
res := SendMessage(HWND_BROADCAST, WM_COPYDATA, Integer(
Handle), Integer(@copyDataStruct)) ;
Ich sende also
B;2;160569;Di, 12.06.2012 14:08;DAH-TH480;DAH-TH481;
und Manchmal empfängt das andere Programm:
B;2;160569;Di, 12.06.2012 14:08;DAH-TH480;DAH-TH481D
//zum Empangen der Nachricht.
Delphi-Quellcode:
procedure TfrKamera1.WMCopyData(var Msg: TWMCopyData) ;
var
NachrichtTyp : TNachrichtTyp;
Nachricht:string;
begin
NachrichtTyp := TNachrichtTyp(Msg.CopyDataStruct.dwData);
Nachricht := PChar(Msg.copyDataStruct.lpData); //Die Nachricht ist nicht immer identisch!!!
//Send something back
msg.Result := SizeOf(Msg.CopyDataStruct);
end;
Hat jemand eine Idee?
Gruß Kostas