Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Windows Firewall - Eintrag erstellen / löschen / ändern

  Alt 2. Mär 2009, 08:25
Zitat:
Delphi-Quellcode:
function IsFirewallServiceActive: Boolean;
var
  SCM, hService: LongWord;
  sStatus: TServiceStatus;
  dwStat: Cardinal;
begin
  dwStat := SERVICE_RUNNING;
  SCM := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
  hService := OpenService(SCM, PChar('SharedAccess'), SERVICE_ALL_ACCESS);

  if (hService > 0) then
    if (QueryServiceStatus(hService, sStatus)) then
      dwStat := sStatus.dwCurrentState;
  CloseServiceHandle(hService);

  Result := (SERVICE_RUNNING = dwStat);
end;
Was geschieht, wenn OpenSCManager fehlschlägt?
Ich würde noch ein if(SCM > 0) then hinzufügen
Was geschieht, wenn hService <= 0 zurückgibt? Muss dann wirklich CloseServiceHandle aufgerufen werden?
Thomas
  Mit Zitat antworten Zitat