Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Firewall Windows Coleccion

Estas en el tema de Firewall Windows Coleccion en el foro de Visual Basic clásico en Foros del Web. Hola haber si me puede ayudar alguien: con el siguiente codigo saco en listbox con style checkbox una lista identica a la del firewall de ...
  #1 (permalink)  
Antiguo 19/09/2010, 04:25
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 17 años, 6 meses
Puntos: 4
Firewall Windows Coleccion

Hola haber si me puede ayudar alguien:

con el siguiente codigo saco en listbox con style checkbox una lista identica a la del firewall de Windows de mi ordenador.

Cita:
Private Sub Command1_Click()
List1.Clear
Set OBJFIREWALL = CreateObject("HNetCfg.FwMgr")
Set objPolicy = OBJFIREWALL.LocalPolicy.CurrentProfile
Set colApplications = objPolicy.AuthorizedApplications
Set colServices = objPolicy.Services
Set colPorts = objPolicy.GloballyOpenPorts
For Each objApplication In colApplications
List1.AddItem objApplication.Name
Next
For Each objService In colServices
List1.AddItem objService.Name
Next
For Each objPort In colPorts
List1.AddItem objPort.Name
Next

End Sub
Hasta aqui todo bien, Despues con el siguiente codigo se puede saber si esta activado o no lo esta.
Por ejemplo: dentro de la coleccion colApplications

Cita:
MsgBox objApplication.Enabled
Bueno mi pregunta es ¿como puedo hacer dentro del primer codigo que expongo, para que se queden solamente clickados los que estan activados osea TRUE, en la casilla del listbox con style checkbox?.
  #2 (permalink)  
Antiguo 19/09/2010, 05:45
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: Firewall Windows Coleccion

Hola:

Para que veas como puedes hacerlo te he hecho un pequeño ejemplo.

Private Sub Command1_Click()
Dim c As Integer
For c = 1 To 5
List1.AddItem c
List1.Selected(List1.ListCount - 1) = True
Next
End Sub

Por tanto es de suponer que en tu código puedes hacer algo así:

For Each objApplication In colApplications
List1.AddItem objApplication.Name
List1.Selected(List1.ListCount - 1) = objApplication.Enabled
Next

Pruebalo y comenta si funcionó.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 19/09/2010, 08:44
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 17 años, 6 meses
Puntos: 4
Respuesta: Firewall Windows Coleccion

Erbuson como siempre PERFECTO!!!!!

habia probado algo parecido pero siempre me salia error.

FUNCIONA PERFECTO.
  #4 (permalink)  
Antiguo 19/09/2010, 11:17
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 17 años, 6 meses
Puntos: 4
De acuerdo Respuesta: Firewall Windows Coleccion

Por si os interesa hacer algo para el firewall el codigo lo saque de una pagina de scripts.

http://www.activexperts.com/activmon...ndowsfirewall/

NOTA:Erbuson funciona perfecto , pero si pones la propiedad sorted del listbox
en true para ordenarlos, no los marca.Pero a mi me vale asi.
Cita:
Private Sub Command1_Click()
List1.Clear
Set OBJFIREWALL = CreateObject("HNetCfg.FwMgr")
Set objPolicy = OBJFIREWALL.LocalPolicy.CurrentProfile
Set colApplications = objPolicy.AuthorizedApplications
Set colServices = objPolicy.Services
Set colPorts = objPolicy.GloballyOpenPorts
For Each objApplication In colApplications
List1.AddItem objApplication.Name
List1.Selected(List1.ListCount - 1) = objApplication.Enabled
Next
For Each objService In colServices
List1.AddItem objService.Name
List1.Selected(List1.ListCount - 1) = objService.Enabled
Next
For Each objPort In colPorts
List1.AddItem objPort.Name
List1.Selected(List1.ListCount - 1) = objPort.Enabled
Next
End Sub
GRACIAS

Última edición por A.H.H; 19/09/2010 a las 11:27
  #5 (permalink)  
Antiguo 19/09/2010, 12:35
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: Firewall Windows Coleccion

Hola:

Es lógico que con el SORTED no los marque ya que realmente el código lo que hace es marcar el último elemento añadido en caso de que este activado.

Pero claro al estar la propiedad en Sorted = True imagino que realmente reordena el indice al ir añadiendolo y el ultimo añadido no es el último de la lista.

Se me ocurre que si deseas que esten ordenados, podrías hcer un truco marcandolos en un ciclo posterior.

Por ejemplo, podrías añadir un caracter al final de cada .Name si esta activado y después de añadirlos todos, recorrer los elementos para marcarlos si tienen el caracter adecuado.

No se si me he dado a entender, si te interesa y quieres lo comentamos y te pongo como lo haría yo, realmente creo que es sencillo.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #6 (permalink)  
Antiguo 19/09/2010, 13:04
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: Firewall Windows Coleccion

Si quieres ordenarlo, puedes hacer lo siguiente:

Pones la propiedad Sorted en True como ya sabes y creas la siguiente rutina:

Código vb:
Ver original
  1. Private Sub EstaActivado(Name As String)
  2.   Dim i As Integer
  3.   For i = 0 To List1.ListCount - 1
  4.     If List1.List(i) = Name Then
  5.       List1.Selected(i) = True
  6.       Exit Sub
  7.     End If
  8.   Next
  9. End Sub
después cambias el código de esta manera:

Código vb:
Ver original
  1. For Each objApplication In colApplications
  2.   List1.AddItem objApplication.Name
  3.   If objApplication.Enabled Then EstaActivado objApplication.Name
  4. Next
Pruébalo y si no me he equivocado escribiendo, debería funcionar.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #7 (permalink)  
Antiguo 22/09/2010, 06:14
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 17 años, 6 meses
Puntos: 4
Respuesta: Firewall Windows Coleccion

Erbuson una vez mas PERFECTO!! Muchas gracias le habia dado al codigo mil vueltas.
Veo que te gusto el desafio!jaja

muchas GRACIAS!! FUNCIONA MUY BIEN Y ORDENADO.
  #8 (permalink)  
Antiguo 22/09/2010, 08:12
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años
Puntos: 53
Respuesta: Firewall Windows Coleccion

Lo hice esperando que funcionaría y veo que es así. Y si, tienes razón, me pueden estos 'desafíos', dentro de mis posibilidades no puedo consentir que se me resista la máquina.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: coleccion, firewall, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:45.