Autor Beitrag
woully Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78



BeitragVerfasst: Mi 08.07.09 11:49 
So...

habe gekündigt :( , und auf Named Pipe umgestellt....
Zwar nicht ganz so konfortable, aber wenigstens läufts. :lol:

Danke für eure Mühe.

ciao
woully Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78



BeitragVerfasst: Mi 19.05.10 14:22 
So Leuts,

nach langer langer suche habe ich die Lösung gefunden...
Eigentlich ganz einfach....

In Fall einer Interprozess Kommunikation zwischen einem Dienst und einer App muss der Namen der MapDatei den Prefix "Global\" beinhalten....
Das wars!!!

Code sieht dann folgender maße aus :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
Constructor  TM_MMFInterProcess.Create;
var  FSA: TSecurityAttributes;
     FSD: TSecurityDescriptor;
Begin
  inherited;

  InitializeSecurityDescriptor(@FSD, SECURITY_DESCRIPTOR_REVISION);
  SetSecurityDescriptorDacl(@FSD,True,nil,False);

  FSA.nLength := sizeof(FSA);
  FSA.lpSecurityDescriptor := @FSD;
  FSA.bInheritHandle := True;

  _hFileMapping := CreateFileMapping($FFFFFFFF, @FSA, PAGE_READWRITE, 0, sizeof(TMInterProcessMap), 'Global\MMFname');

  if _hFileMapping <> 0 then
    _ptrInterProcess := MapViewOfFile(_hFileMapping, FILE_MAP_READ or FILE_MAP_WRITE, 000);
end;

Kaum macht man's richtig funktionnierts!!!

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt