V8.3
This commit is contained in:
@@ -3,8 +3,8 @@ unit UnitPareFeu;
|
||||
// créée une règle dans le parefeu windows pour autoriser tous les ports entre CDM et Signaux_complexes
|
||||
|
||||
interface
|
||||
function verifie_regle : integer;
|
||||
function cree_regle : boolean;
|
||||
function verifie_regle(sp : string) : integer;
|
||||
function cree_regle(sp,chemin : string) : boolean;
|
||||
|
||||
implementation
|
||||
|
||||
@@ -22,16 +22,16 @@ Const
|
||||
NET_FW_MODIFY_STATE_OK=0;
|
||||
NET_FW_MODIFY_STATE_GP_OVERRIDE=1;
|
||||
NET_FW_MODIFY_STATE_INBOUND_BLOCKED=2;
|
||||
nom_regle_cdm='CDM rail';
|
||||
|
||||
|
||||
// Ajoute une règle au pare feu pour un programme en utilisant Microsoft Windows Firewall APIs.
|
||||
function AddApplicationRule : boolean;
|
||||
function AddApplicationRule(sp,chemin : string) : boolean;
|
||||
var
|
||||
CurrentProfiles,fwPolicy2,RulesObject,NewRule : OleVariant;
|
||||
s,fichier : string;
|
||||
r : boolean;
|
||||
begin
|
||||
fichier:=CheminProgrammes+'\CDM-Rail\cdr.exe';
|
||||
fichier:=CheminProgrammes+chemin; //'\CDM-Rail\cdr.exe';
|
||||
|
||||
// Crée l'objet FwPolicy2
|
||||
fwPolicy2:=CreateOleObject('HNetCfg.FwPolicy2');
|
||||
@@ -42,8 +42,8 @@ begin
|
||||
//Crée l'objet de la règle.
|
||||
NewRule:=CreateOleObject('HNetCfg.FWRule');
|
||||
|
||||
NewRule.Name:=nom_regle_cdm;
|
||||
NewRule.Description:='Autorise le socket de/vers CDM rail';
|
||||
NewRule.Name:=sp; // CDM rail
|
||||
NewRule.Description:='Autorise le socket de/vers CDM rail'+sp;
|
||||
|
||||
NewRule.Applicationname:=fichier;
|
||||
NewRule.Protocol:=NET_FW_IP_PROTOCOL_TCP;
|
||||
@@ -69,7 +69,8 @@ begin
|
||||
result:=r;
|
||||
end;
|
||||
|
||||
function cree_regle : boolean;
|
||||
//
|
||||
function cree_regle(sp,chemin : string) : boolean;
|
||||
var CoResult : Hresult;
|
||||
s : string;
|
||||
r : boolean;
|
||||
@@ -78,13 +79,13 @@ begin
|
||||
try
|
||||
CoResult:=CoInitializeEx(nil,COINIT_MULTITHREADED);
|
||||
try
|
||||
r:=AddApplicationRule;
|
||||
r:=AddApplicationRule(sp,chemin);
|
||||
finally
|
||||
begin
|
||||
CoUninitialize;
|
||||
if r then
|
||||
begin
|
||||
s:='Ajout de la règle '+nom_regle_cdm+' dans le pare-feu';
|
||||
s:='Ajout de la règle '+sp+' dans le pare-feu';
|
||||
formconfig.Labelinfo.caption:=s;
|
||||
Affiche(s,clyellow);
|
||||
end;
|
||||
@@ -109,8 +110,8 @@ end;
|
||||
// vérifie si la règle cdm est dans le parefeu windows
|
||||
// retour =0 : pas dans le pare feu
|
||||
// =1 oui mais inactive
|
||||
// =2 oui et active
|
||||
function CheckingRuleEnabled : integer;
|
||||
// =2 oui et active sp=Nom regle CDM
|
||||
function CheckingRuleEnabled(sp : string) : integer;
|
||||
var
|
||||
fwPolicy2,RulesObject,regle : OleVariant;
|
||||
CurrentProfiles : Integer;
|
||||
@@ -122,17 +123,17 @@ begin
|
||||
fwPolicy2:=CreateOleObject('HNetCfg.FwPolicy2');
|
||||
RulesObject:=fwPolicy2.Rules;
|
||||
CurrentProfiles:=fwPolicy2.CurrentProfileTypes;
|
||||
trouve:=false ;
|
||||
trouve:=false;
|
||||
oEnum:=IUnknown(Rulesobject._NewEnum) as IEnumVariant;
|
||||
while (oEnum.Next(1,regle,iValue)=0) and not(trouve) do
|
||||
begin
|
||||
if (regle.Profiles And CurrentProfiles)<>0 then
|
||||
begin
|
||||
s:=regle.Name;
|
||||
trouve:=s=nom_regle_cdm;
|
||||
trouve:=s=sp;
|
||||
if trouve then
|
||||
begin
|
||||
Affiche('Description de l''autorisation socket pour CDM rail dans le pare-feu Windows',clyellow);
|
||||
Affiche('Description de l''autorisation socket pour '+sp+' dans le pare-feu Windows',clyellow);
|
||||
Affiche('Nom : ' + s,clLime);
|
||||
Affiche('Description : ' + regle.Description,clLime);
|
||||
Affiche('Nom d''application: ' + regle.ApplicationName,clLime);
|
||||
@@ -161,14 +162,14 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function verifie_regle : integer;
|
||||
function verifie_regle(sp : string) : integer;
|
||||
var i : integer;
|
||||
begin
|
||||
i:=0;
|
||||
try
|
||||
CoInitialize(nil);
|
||||
try
|
||||
i:=CheckingRuleEnabled;
|
||||
i:=CheckingRuleEnabled(sp);
|
||||
finally
|
||||
CoUninitialize;
|
||||
end;
|
||||
|
||||
Reference in New Issue
Block a user