![]() |
Daten zwischen 2 Prozessen austauschen?? Wie?
Hi,
ich möchte zwei programme programmieren, die untereinander daten austausen können, wenn beide laufen. (NICHT ÜBERS NETZWERK!!!!) MFG Thomas |
Hi thomas,
schau mal im PSDK/MSDN unter dem Stichwort WM_COPYDATA, das sollte das richtige für dich sein. MfG, d3g |
Alternativ schau' im PSDK nach den Stichworten "Shared Memory" oder "Pipe".
Grüße, Daniel |
Moin Thomas,
welches Volumen können die Daten denn haben, und von welchem Typ sind diese? So auf Anhieb fallen mir vier Möglichkeiten ein:
EDIT: 19:37, 19:38, 19:39 :mrgreen: /EDIT |
Das mit der Window-Message hört sich gut an auch für Strings???
Kann mir jemand n Code-Schnipsel posten? |
Hi Thomas,
Sender:
Code:
Receiver:
procedure TForm1.FormCreate(Sender: TObject);
var aCopyData: TCopyDataStruct; p: PChar; begin p := 'Hallo!'; with aCopyData do begin dwData := 0; cbData := StrLen(p) + 1; lpData := p; end; SendMessage(FindWindow('TFormRecv', nil), WM_COPYDATA, Longint(Handle), Longint(@aCopyData)); Application.Terminate; end;
Code:
MfG,
type
TFormRecv = class(TForm) private procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA; end; // ... procedure TFormRecv.WMCopyData(var Msg: TWMCopyData); begin ShowMessage(String(Msg.CopyDataStruct.lpData)); end; d3g |
Hat super geklappt, danke für den Source CODE!!!!
MFG THOMAS |
Irgendwie ist das jetzt unzuverlässig :-(
Hat jemand noch ne Idee warum??? Da kommt nie ne Messagebox, obwohl die namen Stimmen :-( |
Messagebox? Die müßtest du dan aber gemacht haben oder?
Sollte eigentlich funktioniern. Überprüf mal, ob das Fensterhandle gültig ist. Sprich, ob der Sender die Daten auch an das richtige Fenster schickt. |
Kann das sein, dass das nur mit sichtbaren Fenstern geht?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 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