使用Delphi删除Windows防火墙规则(例外)

使用Delphi删除Windows防火墙规则(例外),第1张

概述我正在尝试使用Delphi XE3在 Windows 7上管理防火墙规则(例外).我发现了一个非常有趣的代码,用于向Windows防火墙添加规则,但没有删除(删除)它.拜托,有人可以帮忙吗? 以下是添加规则的代码: procedure AddExceptToFirewall(const Caption, AppPath: String);// Uses ComObjconst NET_FW 我正在尝试使用Delphi XE3在 Windows 7上管理防火墙规则(例外).我发现了一个非常有趣的代码,用于向windows防火墙添加规则,但没有删除(删除)它.拜托,有人可以帮忙吗?

以下是添加规则的代码:

procedure AddExceptToFirewall(const Caption,AppPath: String);// Uses ComObjconst  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;

谢谢!

解决方法 您只需调用 INetFWRules.Remove,传入规则名称即可.该名称与您在创建时使用的名称相同(上面提供的代码中的RObject.name).

// Note: normal COM exception handling should be used. Omitted for clarity.procedure RemoveExceptFromFirewall(const Rulename: String);const  NET_FW_PROfile2_PRIVATE = 2;  NET_FW_PROfile2_PUBliC  = 4;var  Profile: Integer;  Policy2: oleVariant;  RObject: oleVariant;begin  Profile := NET_FW_PROfile2_PRIVATE OR NET_FW_PROfile2_PUBliC;  Policy2 := CreateoleObject('HNetCfg.FwPolicy2');  RObject := Policy2.Rules;  RObject.Remove(Rulename);end;

BTW链接文档中几乎没有提供任何内容.我提供的链接仅供参考.

总结

以上是内存溢出为你收集整理的使用Delphi删除Windows防火墙规则(例外)全部内容,希望文章能够帮你解决使用Delphi删除Windows防火墙规则(例外)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1261298.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存