我正在尝试使用Delphi XE3pipe理Windows 7上的防火墙规则(例外)。 我发现了一个非常有趣的向Windows防火墙添加规则的代码,但没有关于删除(删除)它的任何内容。 请,有人可以帮忙吗?
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;
谢谢!
如何在Windowsexception处理程序中设置MMX寄存器以模拟不支持的3DNow! 说明
终结者中的WCF NullReferenceException
如何禁用“Microsoft Visual C ++debugging库”exception对话框?
从未捕获的exception获取堆栈跟踪?
禁用“Foo遇到问题,需要closures”窗口
JAR文件在Linux上按预期工作,在Windows上引发exception
什么是“双栈错误”?
u-boot中的exception向量地址
您只需调用INetFWRules.Remove ,传入规则的名称即可。 名称与创建时使用的名称相同( RObject.Name提供的代码中的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;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。