Sto provando a gestire le regole del firewall (eccezioni) su Windows 7 usando Delphi XE3. Ho trovato un codice molto interessante per l'aggiunta di una regola al firewall di Windows, ma nulla sull'eliminazione (rimozione). Per favore, qualcuno può aiutare?Rimuovi Windows Firewall Rule (Exception) usando Delphi
ecco il codice per aggiungere la regola:
procedure AddExceptToFirewall(const Caption, AppPath: String);
// Uses ComObj
const
NET_FW_PROFILE2_PRIVATE = 2;
NET_FW_PROFILE2_PUBLIC = 4;
NET_FW_IP_PROTOCOL_TCP = 6;
NET_FW_ACTION_ALLOW = 1;
var
Profile: Integer;
Policy2: OleVariant;
RObject: OleVariant;
NewRule: OleVariant;
begin
Profile := NET_FW_PROFILE2_PRIVATE OR NET_FW_PROFILE2_PUBLIC;
Policy2 := CreateOleObject('HNetCfg.FwPolicy2');
RObject := Policy2.Rules;
NewRule := CreateOleObject('HNetCfg.FWRule');
NewRule.Name := Caption;
NewRule.Description := Caption;
NewRule.ApplicationName := AppPath;
NewRule.Protocol := NET_FW_IP_PROTOCOL_TCP;
NewRule.Enabled := True;
NewRule.Grouping := '';
NewRule.Profiles := Profile;
NewRule.Action := NET_FW_ACTION_ALLOW;
RObject.Add(NewRule);
end;
Grazie!
Grazie @Ken White! Non l'avevo mai trovato da nessuna parte ... – Guybrush
@Paruba, dovresti davvero considerare di importare la libreria dei tipi invece di copiare il codice tardivo da Internet. Inoltre, dovresti controllare 'HRESULT' dalla chiamata al metodo. Entrambi i suggerimenti potrebbero farti risparmiare un sacco di problemi. –
FYI, la TypeLibrary per l'API Firewall si trova in '% WINDIR% \ System32 \ FirewallAPI.dll'. –