【发布时间】:2012-02-29 02:56:23
【问题描述】:
我有根据http://www.activexperts.com/activmonitor/windowsmanagement/scripts/networking/windowsfirewall/找到并实现的这段代码
procedure AddExceptionToFirewall (Caption: String; Executable: String);
var
FirewallMsg: OleVariant;
Application: OleVariant;
CurrentProfile: OleVariant;
begin
FirewallMsg:= CreateOLEObject ('HNetCfg.FwMgr');
CurrentProfile:= FirewallMsg.LocalPolicy.CurrentProfile;
Application:= CreateOLEObject ('HNetCfg.FwAuthorizedApplication');
Application.ProcessImageFileName:= Executable;
Application.Name:= Caption;
Application.Scope:= FW_SCOPE_ALL;
Application.IpVersion:= FW_IP_VERSION_ANY;
Application.Enabled:= True;
CurrentProfile.AuthorizedApplications.Add (Application);
end;
问题是,在 Windows 7 上,它仅将异常添加为 Public 而不是 Private,正如您在此处的 RED 中所看到的那样
当设置为仅公开时,我的程序在通过 FTP 连接访问我的主机时遇到问题,从而使我的程序无用。 此问题仅适用于 Windows Vista/7;在 XP 上,当前配置可以正常工作。
如果您有任何线索或有用的建议,请分享。
【问题讨论】:
标签: delphi windows-vista delphi-7 windows-firewall