Dim objFW As Object Set objFW = CreateObject("HNetCfg.FwMgr").LocalPolicy.CurrentProfile With objFW .FirewallEnabled = True ' True 开启 , False 关闭 .ExceptionsNotAllowed = True ' [ 不允许例外 ] 选项 , True 勾 , 反之则不勾 End With 或 procedure Set_WindowsXP_FireWall(Enable: boolean); // 需引用 winsvc, shellapi // Set_WindowsXP_FireWall(false); // 关闭Windows Xp 防火牆 // var SCM, hService: LongWord; sStatus: TServiceStatus; begin if Enable = false then begin SCM := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS); hService := OpenService(SCM, PChar('SharedAccess'), SERVICE_ALL_ACCESS); ControlService(hService, SERVICE_CONTROL_STOP, sStatus); CloseServiceHandle(hService); end; end; 设定Port 的部份,不过还没测试!不过我还是希望写成简单形式的函数库呼叫方式,大家一起來测试吧! 出处:http://www-new.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_22122056.html Example of both adding and removing a tcp port from the globaly open ports list (in Windows XP firewall) Regards, Russell // Include ActiveX and ComObj in uses clause (also Variants for D6 and up) const NET_FW_PROFILE_DOMAIN = 0; NET_FW_PROFILE_STANDARD = 1; const NET_FW_IP_PROTOCOL_TCP = 6; NET_FW_IP_PROTOCOL_UDP = 17; const NET_FW_SCOPE_ALL = 0; const NET_FW_IP_VERSION_ANY = 2; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var ovMgr: OleVariant; ovProfile: OleVariant; ovPort: OleVariant; begin // Create manager interface ovMgr:=CreateOleObject('HNetCfg.FwMgr'); // Resource protection try // Get local profile interface ovProfile:=ovMgr.LocalPolicy.CurrentProfile; // Resource protection try // Create new port interface ovPort:=CreateOleObject('HNetCfg.FwOpenPort'); try // Set port properties ovPort.Port:=81; ovPort.Name:='Whatever'; ovPort.Scope:=NET_FW_SCOPE_ALL; ovPort.IpVersion:=NET_FW_IP_VERSION_ANY; ovPort.Protocol:=NET_FW_IP_PROTOCOL_TCP; ovPort.Enabled:=True; // Resource protection try // Add to globally open ports ovProfile.GloballyOpenPorts.Add(ovPort); //// // .... do whatever .... //// finally // Remove from globally open ports ovProfile.GloballyOpenPorts.Remove(81, NET_FW_IP_PROTOCOL_TCP); end; finally // Release interface ovPort:=Unassigned; end; finally // Release interface ovProfile:=Unassigned; end; finally // Release interface ovMgr:=Unassigned; end; end; |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-30 13:16 , Processed in 0.098836 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.