olala - das versteh sogar ich
So ergibt das natürlich mehr Sinn
und das oben hätte natürlich
procedure Empfang(var AMsg: TMessage); message wm_user + RegisterWindowMessage('guidstring');
auch wenn es völliger unsinn war.
Danke, bin schon am ausprobieren...
Oh bevor ich den Thread abschließe. Sollte jemand darauf stoßen und sich fragen was das mit mmf zu tun hat.
Kurz gesagt:
MMF ist ein im speicher liegendes file (eigentlich ein pointer zu ner 4k page wie es microsoft sagt).
Man kann das auch für
IPC nutzen wenn man dem MMF $ffffffff (0xffffffff) als
handle gibt.
MMFileHandle := CreateFileMapping($ffffffff, nil, PAGE_READWRITE, 0, 7, 'Name des files');
CreatefileMapping muß man einmal in einem prozess aufrufen um den
Handle zu bekommen.
Danach kann man OpenFileMapping verwenden.
Aufpassen sollte man nur, wenn man das in einer .dll verwendet, weil eine .dll leicht von mehreren prozessen geladen wird, und jeder prozess der die library ladet dann praktisch CreateFileMapping aufrufen würde
.
Jetzt ist das hald so zu behandeln wie ein File.
Also kann man entweder immer wieder nachschauen was da drin steht, oder man läßt dem prozess eine windows message zukommen die ihn dann informieren soll, daß etwas drin liegt (wenn man es für
IPC verwendet).
Und hier kommt sendmessage ins Spiel - das soll praktisch den Read event auslösen am anderen ende des computers.
Wenn man das nicht event gesteuert macht, muß man wohl die daten immer wieder löschen ( überschreiben ) um nicht ständig das gleiche auszulesen.
Das funktioniert Natürlich in beide Richtungen - macht dann aber keinen sinn und ist nur kompliziert, dann muß man sich wohl mit Pipes auseinandersetzen.
So hab ichs verstanden
- hoffe das stimmt und hilft anderen überhaupt zu begreifen worum es geht.
source code findet man genug hier im forum aber theorie hat mir dazu gefehlt.
Danke an alle helfenden Hände.
Arnulf