Activar y Desactivar Windows Firewall
#1
Escrito 01 agosto 2009 - 09:42
Se puede activar y desactivar el Firewall por código con delphi?.
Saludos
PD: No se si es API
#2
Escrito 01 agosto 2009 - 10:10
Desactivar:
shellexecute(0,'open', 'net.exe',' stop sharedaccess',0,0);
Activar:
shellexecute(0,'open', 'net.exe',' start sharedaccess',0,0);
Saludos.
#3
Escrito 01 agosto 2009 - 10:34
Amigo que uses tengo que poner para el shellexecute?
Saludos
#4
Escrito 01 agosto 2009 - 10:37
Ya vi SellApi.
Otra cosa:
Esto desactiva el srvicio del firewall, pero me gustaria que solo lo dejara on o off sin desactivalo.
Se puede?
Saludos
#5
Escrito 01 agosto 2009 - 10:53
Esto desactiva el srvicio del firewall, pero me gustaria que solo lo dejara on o off sin desactivalo.
Eso no lo entendí
Saludos!
#6
Escrito 01 agosto 2009 - 10:58
Bueno, en el firewall hay una pantalla.
En esa pantalla hay tres opciones, on, off y la otra de excepciones.
Lo que hace el codigo de Fernando es desactivar el servicio, o eso es lo que creo, por que si se quiere entrar en esa ventana sale un mensaje que dice que el servicio esta detenido y si quiere activarlo.
Yo pensaba en la posibilidad de únicamente cambiar el estado, on y off, pero que la ventana siga saliendo.
No se si se podrá o es lo mismo.
Saludos
#7
Escrito 01 agosto 2009 - 11:26
Saludos.
#8
Escrito 01 agosto 2009 - 11:48
Si amigo, lo he notado, pero ya sabes, es para ponértela difícil jejeje.
Saludos
#9
Escrito 01 agosto 2009 - 12:32
uses ComObj; var objFirewall: Variant; begin objFirewall:= CreateOleObject('HNetCfg.FwMgr'); objFirewall.LocalPolicy.CurrentProfile.FirewallEnabled:= FALSE; end;
Pero lo acabo de probar en Vista y no me deja
#10
Escrito 01 agosto 2009 - 12:46
uses ComObj; const NET_FW_PROFILE2_DOMAIN = 1; NET_FW_PROFILE2_PRIVATE = 2; NET_FW_PROFILE2_PUBLIC = 4; var fwPolicy2: Variant; begin fwPolicy2:= CreateOleObject('HNetCfg.FwPolicy2'); fwPolicy2.FirewallEnabled(NET_FW_PROFILE2_DOMAIN):= FALSE; fwPolicy2.FirewallEnabled(NET_FW_PROFILE2_PRIVATE):= FALSE; fwPolicy2.FirewallEnabled(NET_FW_PROFILE2_PUBLIC):= FALSE; end;
PD: Hay que ejecutarlo como administrador
#11
Escrito 01 agosto 2009 - 12:49
Que bien amigo seoane, un gusto ver tu code.
Salud OS
#12
Escrito 01 agosto 2009 - 01:07
Muchas gracias Seoane, es exactamente lo que quería sin menospreciar lo de Fernando por supuesto.
Gracias a ambos.
Saludos
#13
Escrito 01 agosto 2009 - 04:10
uses
Windows, Messages, ..., WinSvc, ShellApi;
Este sería un el procedimiento que detiene el servicio:
procedure DeshabilitarCortafuegosXP; var SCM, hService: LongWord; sStatus: TServiceStatus; 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;
Para volver a activarlo sólo hay que ir al panel de control y ponerlo en marcha
de nuevo. Esto no vale para otros cortafuegos (Panda, Norton, etc.)
Pruebas realizadas en Delphi 7
[glow=red,2,300]tomado de unos manuales llamados delphi al limite[/glow]
#14
Escrito 02 agosto 2009 - 11:48
Saludos!
#15
Escrito 02 agosto 2009 - 09:48