Bedankt voor de tips. Nu ik moet echter toegeven dat het mijn eigen fout was dat het niet werkte (foutje in mijn eigen code).
De Cromis IPC werkt prima tussen service en applicatie. Door jullie links ben ik wat in de code gaan duiken en vind je dus die security descriptor terug en heb ik weer wat bijgeleerd over de hoe de zaken in de achtergrond werken.
Delphi Code:
// security attributes
PSA: TSecurityAttributes;
PSD: TSecurityDescriptor;
// task
Task: ITask;
// array of wait handles for wait func
WaitArray: Array [0 .. 1] Of THandle;
Begin
Inherited;
PipeHandle := INVALID_HANDLE_VALUE;
Try
InitializeSecurityDescriptor(@PSD, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(@PSD, True, PACL(0), False);
PSA.lpSecurityDescriptor := @PSD;
PSA.bInheritHandle := True;
PSA.nLength := SizeOf(PSA);
FOverlappEvent := CreateEvent(Nil, False, False, Nil);
Try
FillChar(Overlapped, SizeOf(TOverlapped), 0);
// create the overlapped event for the named pipe
Overlapped.hEvent := FOverlappEvent;
WaitArray[0] := Overlapped.hEvent;
WaitArray[1] := FAbortEvent;
While Not Terminated Do
Begin
// create the pipe
PipeHandle := CreateNamedPipe(PChar(FPipeName), PIPE_ACCESS_DUPLEX Or FILE_FLAG_OVERLAPPED, PIPE_TYPE_BYTE Or PIPE_READMODE_BYTE,
PIPE_UNLIMITED_INSTANCES, cDefaultMessageSize, cDefaultMessageSize, 0, @PSA);
Ben bezig met een remote cliënt voor mijn applicatie (nogmaals ). Tip, voor de omvorming van object (published properties) naar JSON gebruik ik volgende code:
https://github.com/synopse/mORMot/bl...atformJSON.pas
Deze string stuur ik dan door via Cromis IPC. Heb lang gezocht naar een voor mezelf 'simpele' oplossing.
Bedankt,
Pascal
Bookmarks