delphi是否可以控制windows默认的防火墙?
检测是否开启了防火墙,如果开启,就将自己的程序添加到例外。
或者控制关闭防火墙。

解决方案 »

  1.   

    当然可以,WINDOWS 防火墙例外端口在注册表中的位置  xp下:
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\Listwin7下:
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules可以通过直接操作 注册表的方式加入例外端口,但是有个问题,那就是杀毒软件和WINDOWS系统自己都会报毒和报错。可以使用微软提供的一个DLL实现加入。
    Windows Firewall for Game Developers  
    http://msdn.microsoft.com/en-us/library/bb173455(VS.85).aspx在C#中可以使用platform invoke调用这个dll中的函数.Platform Invoke Tutorial
    http://msdn.microsoft.com/en-us/library/aa288468.aspx
      

  2.   

    另外还有就是用命令行的netsh 命令添加 例外端口也是个办法例:我要添加一个3230 TCP和UDP端口,则为:
    netsh firewall set portopening all 3230 polycom-3230 enable
      

  3.   

    谢谢大家,看来这个问题还是有一定的难度。安装一些网络软件的时候,比如qq,迅雷等,windows还是有提示的,应该是没法搞定绕开windows的防火墙。