Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#6

AW: Existenz eines Dienstes kann unter Win 2008 nicht abgefragt werden

  Alt 11. Jul 2015, 21:52
Tja, jetzt musst du noch rausfinden, wo genau es in der aufgerufenen Funktion QueryServiceConfig knallt (ist ja eine überladene).

"Meine" Funktion (eigentlich von Ritsaert Hornstra bei StackOverflow) sieht so aus:
Delphi-Quellcode:
var
  Buffer: {$IFDEF UNICODE}
           LPQUERY_SERVICE_CONFIG {$ELSE} PQueryServiceConfig
          {$ENDIF};
  BytesNeeded: DWORD;
begin
    Buffer := nil;
    if QueryServiceConfig(FHandle,Buffer,0,BytesNeeded) <> ERROR_INSUFFICIENT_BUFFER then
        RaiseLastOSError;

    GetMem(Buffer,BytesNeeded);
    try
      if not QueryServiceConfig(FHandle,Buffer,BytesNeeded,BytesNeeded) then
         RaiseLastOSError;
      // [...]
    finally
      FreeMem(Buffer);
    end;
end;
Es gibt also einen Unterschied im ersten Aufruf. Dort wird zwar nil übergeben, aber mittels einer Variable.

@Sir Rufo: QueryServiceConfig ist in diesem Fall keine API-Funktion! Vielleicht ist der Name der Funktion etwas ungünstig, aber Delphi erkennt es ja anhand der Signatur trotzdem.

MfG Dalai
  Mit Zitat antworten Zitat