AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Createmutex / Windows 7 / 64bit Problem
Thema durchsuchen
Ansicht
Themen-Optionen

Createmutex / Windows 7 / 64bit Problem

Ein Thema von Mavarik · begonnen am 10. Nov 2009 · letzter Beitrag vom 11. Nov 2009
Antwort Antwort
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#1

Re: Createmutex / Windows 7 / 64bit Problem

  Alt 10. Nov 2009, 13:51
Ich frage mich ein wenig, wozu man da ein Mutex bemüht. Viel sauberer wäre es imho den Service Manager einfach zu fragen ob der Service läuft. Das ist nicht nur einfacher, sondern auch sicherer (es gibt nämlich einen Zeitraum in der der Mutex noch nicht existiert, Dein Service aber im Begriff ist zu starten):

Delphi-Quellcode:
uses winsvc;

function IsServiceRunning(serviceName : string) : Boolean;
var
  scmHandle : THandle;
  serviceHandle : THandle;
  serviceStatus : TServiceStatus;
begin
  Result := FALSE;
  scmHandle := OpenSCManager(nil, SERVICES_ACTIVE_DATABASE, GENERIC_READ);
  if scmHandle <> 0 then
    begin
      serviceHandle := OpenService(scmHandle, PChar(serviceName), SERVICE_QUERY_STATUS);
      if serviceHandle <> 0 then
        begin
          if QueryServiceStatus(serviceHandle, serviceStatus) then
            result := serviceStatus.dwCurrentState <> SERVICE_STOPPED;
          CloseServiceHandle(serviceHandle);
        end;
      CloseServiceHandle(scmHandle);
    end;
end;
Wenn Du wirklich ein Mutex nutzen magst, dann sollte es meiner Ansicht nach notwendig sein, den Mutex im globalen Namespace zu erstellen. Dazu musst Du Dir dann vorher entsprechende Rechte besorgen.
Fridolin Walther
"While Mr. Kim, by virtue of youth and naiveté, has fallen prey to the inexplicable need for human contact, let me step in and assure you that my research will go on uninterrupted, and that social relationships will continue to baffle and repulse me."
  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 23:46 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