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?