Results 1 to 6 of 6

Thread: Named Pipes Service <> Applicatie

  1. #1
    Senior Member pcoenen's Avatar
    Join Date
    Apr 2001
    Location
    Tesssenderlo, België
    Posts
    239

    Question Named Pipes Service <> Applicatie

    Ben wat aan het testen met de volgende name pipes oplossing:

    http://www.cromis.net/blog/downloads/cromis-ipc/

    Werkt prima tussen verschillende applicaties op Windows 7. Echter tussen een service en een applicatie krijg ik niet aan het werken (de service 'logon as' user is een administrator). Ik besef dat die service in een andere 'sessie' draait maar dacht toch dat named pipes zou kunnen werken. Weet iemand waar je in dit geval moet op letten?

    Groeten,
    Pascal

  2. #2

  3. #3
    Senior Member pcoenen's Avatar
    Join Date
    Apr 2001
    Location
    Tesssenderlo, België
    Posts
    239
    Ok bedankt voor de tip. Ik kan weer een tijdje verder :-)

  4. #4
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    1,046
    Was er ook niet iets met "\\?\" en "\global"? Het ding wat ik ooit werkende kreeg met pipes staat hier en hier staat wat je met die security descriptor kan doen bij CreateNamedPipe

  5. #5
    Senior Member pcoenen's Avatar
    Join Date
    Apr 2001
    Location
    Tesssenderlo, België
    Posts
    239
    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:
    1. // security attributes
    2.   PSA: TSecurityAttributes;
    3.   PSD: TSecurityDescriptor;
    4.  
    5.   // task
    6.   Task: ITask;
    7.   // array of wait handles for wait func
    8.   WaitArray: Array [0 .. 1] Of THandle;
    9. Begin
    10.   Inherited;
    11.  
    12.   PipeHandle := INVALID_HANDLE_VALUE;
    13.   Try
    14.     InitializeSecurityDescriptor(@PSD, SECURITY_DESCRIPTOR_REVISION);
    15.     SetSecurityDescriptorDacl(@PSD, True, PACL(0), False);
    16.     PSA.lpSecurityDescriptor := @PSD;
    17.     PSA.bInheritHandle := True;
    18.     PSA.nLength := SizeOf(PSA);
    19.  
    20.     FOverlappEvent := CreateEvent(Nil, False, False, Nil);
    21.     Try
    22.       FillChar(Overlapped, SizeOf(TOverlapped), 0);
    23.       // create the overlapped event for the named pipe
    24.       Overlapped.hEvent := FOverlappEvent;
    25.       WaitArray[0] := Overlapped.hEvent;
    26.       WaitArray[1] := FAbortEvent;
    27.  
    28.       While Not Terminated Do
    29.       Begin
    30.         // create the pipe
    31.         PipeHandle := CreateNamedPipe(PChar(FPipeName), PIPE_ACCESS_DUPLEX Or FILE_FLAG_OVERLAPPED, PIPE_TYPE_BYTE Or PIPE_READMODE_BYTE,
    32.           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

  6. #6
    Senior Member pcoenen's Avatar
    Join Date
    Apr 2001
    Location
    Tesssenderlo, België
    Posts
    239
    Nog even ter info. Een update van de Cromis IPC code kan je hier vinden:

    All the code can be checked out from ?SVN (svn co https://www.cromis.net/svn/cromis/lib/pas/CromisCode)
    Use the following user and password:

    Username: cromis
    Password: cromis


    of

    http://www.cromis.net/trac/cromis/browser/lib

    Hij heeft nog het volgende toegevoegd t.o.v. de versie in de download section van zijn website:

    * 10/03/2014 (1.7.0)
    * - support for filters (encryption, compression...)


    Groeten,
    Pascal

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •