Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

SendMessage überträgt String nicht zuverlässig

  Alt 13. Jun 2014, 16:21
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
  Mit Zitat antworten Zitat