![]() |
AW: SendMessage überträgt String nicht zuverlässig
Ist das schon erwähnt worden?
1. WM_COPYSTRUCT soll/darf nur mit SendMessage aufgerufen werden. 2. Die zu übertragenden Daten sollen/dürfen keine Pointer enthalten. 3. Der Empfänger soll die Daten schnellstmöglich aus der übergebenen Struktur kopieren und die Abarbeitung beenden. 4. Schneller geht es mit Pipes. |
AW: SendMessage überträgt String nicht zuverlässig
Zitat:
![]() Zitat:
|
AW: SendMessage überträgt String nicht zuverlässig
Tausend Dank an alle beteiligten,
so funktioniert es einwandfrei und ausreichend schnell. //zum Senden
Delphi-Quellcode:
//zum Empfangen
procedure SendData;
var receiverHandle : THandle; copyDataStruct : TCopyDataStruct; begin receiverHandle := FindWindow(PChar('TfrKamera1'),PChar('frKamera1')); if receiverHandle > 0 then begin copyDataStruct.dwData := Ord(ntCreateSnapShot); copyDataStruct.cbData := 1 + Length(SendMsgText); copyDataStruct.lpData := PChar(SendMsgText); SendMessage(receiverHandle, WM_COPYDATA, LPARAM(Handle), WPARAM(@copyDataStruct)) ; end; end;
Delphi-Quellcode:
Für mein aktuelles Projekt ist es ausreichend.
procedure TfrKamera1.WMCopyData(var Msg: TWMCopyData) ;
var NachrichtTyp : TNachrichtTyp; begin NachrichtTyp := TNachrichtTyp(Msg.CopyDataStruct.dwData); case NachrichtTyp of ntCreateSnapShot: HandleCopyDataString(Msg.CopyDataStruct); end; end; Gruß Kostas |
AW: SendMessage überträgt String nicht zuverlässig
Zitat:
Zitat:
da diesbezüglich alles ignoriert wurde, aber was soll. |
AW: SendMessage überträgt String nicht zuverlässig
Für Delphi5 habe ich nun mal keine andere Möglichkeit.
Für zukünftige IDEs habt ihr ja bereits die passenden Hinweise gleich mittgeliefert. :-) Schönen Dank dafür. Gruß Kosats |
AW: SendMessage überträgt String nicht zuverlässig
Zitat:
Man will nichts lernen sondern nur übernehmen wenn es denn passt. Aber wie du schon sagst... was soll's gruss |
AW: SendMessage überträgt String nicht zuverlässig
Gute Erlärung, nur die genannten Pips und eigentlich nahezu alles Andere, was mit IPC zu tun hat, funktioniert auch mit alten Delphis.
|
AW: SendMessage überträgt String nicht zuverlässig
Hallo EWeiss,
ich bin mir nicht sicher ob du mich damit meinst. Falls doch, ich habe schon gelernt dabei, das habe ich auch umgesetzt. -Ich verwende keine Broadcast sondern sende an das Fensterhandle des Empfängers. -Ich habe erfahren dass WM_COPYDATA nur mit SendMessage und nicht mit PostMessage geht. -Jetzt ist mir klar warum Broadcast so langsam war. -Ich weis jetzt dass in meinem Fall das Result unbrauchbar ist. Oder habe ich etwas übersehen? Ich bin für Jede Info dankbar. Gruß Kostas |
AW: SendMessage überträgt String nicht zuverlässig
Zitat:
:thumb: gruss |
AW: SendMessage überträgt String nicht zuverlässig
Zitat:
Ja, verstehe. Sicherlich gibt es mehrere Wege. Für das aktuelle Projekt finde ich die Lösung mit SendMessage ausreichend. Es geht um zwei Programme die beide auf dem gleichen Rechner laufen. Das eine erstellt ein Wägeschein und das andere zeigt den Stream einer LAN-Kamera die auf die Ladefläche des LKWs schaut. Sobald ein Wägeschein erstellt wird, werden ein paar Daten wie Datum, WägescheinNr, Kennzeichen u.s.w. an die andere Anwendung gesendet die gerade den Stream von der LAN-Kamera zeigt. Der String wird empfangen, auf das Bild Projiziert und ein jpg als screen shot zur Dokumentation erstellt. Beide Programme werden immer auf dem gleichen PC laufen. Deshalb schien mir die SendMessage Technik dir richtige zu sein. Übrigens, ich habe Messages immer vermieden wie der Teufel das Weihwasser. :-) War für mich also sehr Lehrreich. Gruß Kostas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz