AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Kommunikation Service und Anwendung unter Vista
Thema durchsuchen
Ansicht
Themen-Optionen

Kommunikation Service und Anwendung unter Vista

Ein Thema von JonnyGuitar · begonnen am 18. Jun 2007 · letzter Beitrag vom 21. Jun 2007
Antwort Antwort
JonnyGuitar

Registriert seit: 4. Jun 2004
233 Beiträge
 
#1

Re: Kommunikation Service und Anwendung unter Vista

  Alt 19. Jun 2007, 11:09
servus,

ich habe jetzt in der unit mutexipc nach
Delphi-Quellcode:
If FMMFHandle = INVALID_HANDLE_VALUE Then
Begin
  FMMFHandle := CreateFileMapping($FFFFFFFF, @aSa, PAGE_READWRITE, 0, MutexSize, PChar('MIPC_' + MutexName + '_MMF'));
  If FMMFHandle = 0 Then
    Raise EMIPCInitialization.Create('Error creating file mapping object.');
  Precreated := GetLastError = ERROR_ALREADY_EXISTS;
End
Else
 Precreated := True;
folgendes eingefügt:
Delphi-Quellcode:
if not DuplicateHandle(GetCurrentProcess, FMMFHandle,GetCurrentProcess, @FMMFHandle, 0, FALSE, DUPLICATE_SAME_ACCESS) then
  RaiseLastWin32Error;
und nach
Delphi-Quellcode:
If (FMutexHandle = INVALID_HANDLE_VALUE) Or (FClientID = MIPC_USER_UNDEFINED) Or (FClientID = MIPC_USER_BROADCAST) Then
Begin
  CloseIPC;
  SetLastError(ERROR_ALREADY_EXISTS);
  If (FClientID = MIPC_USER_UNDEFINED) Or (FClientID = MIPC_USER_BROADCAST) Then
    FClientID := GenClientID;
  While GetLastError = ERROR_ALREADY_EXISTS Do
  Begin
    FMutexHandle := CreateMutex(Nil, True, PChar(Format('MIPC_%s_CLIENT%.8x', [MutexName, ClientID])));
    If GetLastError = ERROR_ALREADY_EXISTS Then
    Begin
      CloseHandle(FMutexHandle);
      FClientID := GenClientID;
    End;
  End;
folgendes
Delphi-Quellcode:
if not DuplicateHandle(GetCurrentProcess, FMutexHandle,GetCurrentProcess, @FMutexHandle, 0, FALSE, DUPLICATE_SAME_ACCESS) then
  RaiseLastWin32Error;
leider immer noch keine besserung, der service und die anwendung scheinen unterschiedliche speicherbereiche zu nutzen.

oder habe ich was bei duplicatehandle falsch gemacht?


mfg Jonny
the only thing to fear is runnin' out of beer
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:07 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