Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как добавить приложение в список исключений брандмауэра Windows XP через Delphi?

Delphi , Синтаксис , Справочник по API-функциям

Windows XP использовал встроенный брандмауэр, который мог быть управляем через COM-интерфейсы. Для программной добавления приложений или портов в список исключений брандмауэра Windows XP можно использовать Delphi, комбинируя его возможности с COM-объектами.

Как добавить приложение в список исключений брандмауэра Windows XP через Delphi?

Для начала, убедимся, что ваша система соответствует минимальным требованиям: Windows XP и выше. Затем, используем следующий код, который позволяет добавить приложение в список исключений брандмауэра:

function GetXPFirewall(var fwMgr, profile: OleVariant): boolean;
begin
  // Проверяем версию Windows
  Result := (Win32Platform=VER_PLATFORM_WIN32_NT) and
    (Win32MajorVersion>5) or ((Win32MajorVersion=5) and (Win32MinorVersion>0));
  if Result then // Проверка на Windows XP и выше
    try
      fwMgr := CreateOleObject('HNetCfg.FwMgr');
      profile := fwMgr.LocalPolicy.CurrentProfile;
    except
      on E: Exception do
        Result := false;
    end;
end;

procedure AddApplicationToXPFirewall(const EntryName, ApplicationPathAndExe: string);
var
  fwMgr, profile, app: OleVariant;
begin
  if GetXPFirewall(fwMgr, profile) then
    try
      if profile.FirewallEnabled then
      begin
        app := CreateOLEObject('HNetCfg.FwAuthorizedApplication');
        try
          app.ProcessImageFileName := ApplicationPathAndExe;
          app.Name := EntryName;
          app.Scope := NET_FW_SCOPE_ALL;
          app.IpVersion := NET_FW_IP_VERSION_ANY;
          app.Enabled := true;
          profile.AuthorizedApplications.Add(app);
        finally
          app := varNull;
        end;
      end;
    finally
      profile := varNull;
      fwMgr := varNull;
    end;
end;

Перед использованием этой процедуры, убедитесь, что брандмауэр включен и работает. В параметре ApplicationPathAndExe укажите полный путь к исполняемому файлу приложения, которое вы хотите добавить в список исключений.

Помимо добавления приложений, можно также добавить порт. Вот пример такой процедуры:

procedure AddPortToXPFirewall(const EntryName: string; PortNumber: cardinal);
var
  fwMgr, profile, port: OleVariant;
begin
  if GetXPFirewall(fwMgr, profile) then
    try
      if profile.FirewallEnabled then
      begin
        port := CreateOLEObject('HNetCfg.FWOpenPort');
        port.Name := EntryName;
        port.Protocol := NET_FW_IP_PROTOCOL_TCP;
        port.Port := PortNumber;
        port.Scope := NET_FW_SCOPE_ALL;
        port.Enabled := true;
        profile.GloballyOpenPorts.Add(port);
      end;
    finally
      port := varNull;
      profile := varNull;
      fwMgr := varNull;
    end;
end;

Эта процедура позволяет добавить порт с заданным номером в список исключений для TCP-протокола. Замените EntryName и PortNumber на соответствующие значения, которые вы хотите использовать.

Обратите внимание, что данный код предназначен для использования в операционных системах, начиная с Windows XP, и должен работать в версиях Delphi от 6 до XE.

Альтернативные подходы

Существуют альтернативные способы программного управления брандмауэром Windows, включая использование скриптов Windows Firewall. Дополнительные примеры кода и документация доступны в интернете, например, на сайте Microsoft или CodeProject.

Для использования COM-объектов в Delphi, возможно, потребуется импортировать тип библиотеки, которая обычно находится в файле C:\Windows\System32\hnetcfg.dll. Для импорта используйте команду tlibimp.

Также можно использовать позднее связывание, как описано в вопросе "Add to Firewall Exception list" на Stack Overflow.

Заключение

Добавление приложений или портов в список исключений брандмауэра Windows XP может быть выполнено с помощью Delphi, используя COM-интерфейсы. Представленный выше код предоставляет функциональность для добавления как приложений, так и портов, и должен работать в версиях Delphi, начиная с 6 и до XE.

Создано по материалам из источника по ссылке.

Описание Context: Код на Delphi для добавления приложений или портов в список исключений брандмауэра Windows XP через использование COM-интерфейсов.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Справочник по API-функциям ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-26 13:56:45/0.0033218860626221/0