Delphi 7 Windows Vista / 7 Firewall Exception Network Location

У меня есть этот фрагмент кода, который я нашел и реализовал в соответствии с 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 исключение добавляется только как общедоступное, а не как частное, как вы можете видеть в кружке КРАСНЫЙ здесь

enter image description here

Когда установлено значение «Только общедоступный», у моей программы возникают проблемы с доступом к моему хосту через FTP-соединение, что делает мою программу бесполезной. Эта проблема характерна только для Windows Vista / 7; на XP текущая конфигурация работает нормально.

Поделитесь, пожалуйста, подсказками или полезными указателями.

5
задан Shade 14 June 2013 в 09:59
поделиться