Detectar firewall en tiempo de ejecución

Post Reply
Loren
Posts: 458
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Detectar firewall en tiempo de ejecución

Post by Loren »

Compañeros, buenos días:

Tengo un EXE distribuidos entre mis clientes que se conecta vía FTP a un servidor para verificar actualizaciones. Todo ok, excepto para algunos clientes que tienen en su PC muy restrictiva la configuración Firewall y/o windows Defender e impide que el EXE se conecte para verificar estas actualizaciones. Cuando hay una actualización a estos clientes NO se le actualiza, incluso no soy capaz de modificar el código fuente para que al menos se le muestre un msgalert advirtiendo del problema.

Code: Select all

  oFtp     :=tFtp():New(cServer,oInternet,cUser,cPass)
  if !Empty( oFtp:hFtp )
   cmensaje='Conectado al servidor... y cotejando versiones.'
   sysrefresh()
   aFiles :=oFtp:Directory(ALLTRIM(actual_CA)+'/*.exe')
   .....
 

¿Hay alguna manera de poder detectar ese bloqueo de firewall en tiempo de ejecución y así poder mostrar un msgalert al cliente?

Gracias.

Saludos.
LORENZO.
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Detectar firewall en tiempo de ejecución

Post by karinha »

Hola, ¿estás seguro de que es el firewall? ¿Tienes una imagen con algún mensaje del hecho?
¿No es un antivirus? Si baja el nivel del firewall, ¿qué sucede?

Saludos.
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Detectar firewall en tiempo de ejecución

Post by karinha »

Mira se ayuda:

Code: Select all

////////////////////////////////////////////////////////////////////////////
//
// Propositos: Permitir a manutencao do Firewall( Testado no Windows 7 64 )
//
// Jose Carlos da Rocha - 09/02/2016              Testado no Windows 7 32
//
// Modificado por: Joao Santos - kapiabafwh@gmail.com
//
////////////////////////////////////////////////////////////////////////////

#include "FiveWin.ch"

static oWnd

function Main()

   local oBar

   DEFINE WINDOW oWnd TITLE "Liga/Desliga FireWall do Windows"

   DEFINE BUTTONBAR oBar _3D OF oWnd

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\new.bmp" FLAT       ;
          MESSAGE "Desativar FireWall do Windows"                       ;
          ACTION( FirewallOFF() )                                       ;
          TOOLTIP "Desativar FireWall do Windows"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\open.bmp" FLAT      ;
          MESSAGE "Ativar FireWall do Windows"                          ;
          ACTION( FirewallON() )                                        ;
          TOOLTIP "Ativar FireWall do Windows"

   DEFINE BUTTON OF oBar oBar FILENAME "..\bitmaps\16x16\Exit.bmp" FLAT ;
          MESSAGE "Saida - Exit - Cancelar..."                          ;
          ACTION( oWnd:End() )                                          ;
          TOOLTIP "Saida - Exit - Cancelar..."

   SET MESSAGE OF oWnd TO "Liga/Desliga FireWall do Windows"            ;
       NOINSET CLOCK DATE KEYBOARD

   ACTIVATE WINDOW oWnd

return nil

function FirewallOFF()

   // Jose Carlos da Rocha - 09/02/2016
   ShellExecute( GetActiveWindow(), "RUNAS", "NetSh.exe", "Advfirewall set allprofiles state off", "c:\windows\system32", 0)

return nil
 
function FirewallON()

   // Jose Carlos da Rocha - 09/02/2016
   ShellExecute( GetActiveWindow(), "RUNAS", "NetSh.exe", "Advfirewall set allprofiles state on", "c:\windows\system32", 0)

return nil

// Fin - the end.
 
Saludos.
João Santos - São Paulo - Brasil
Loren
Posts: 458
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: Detectar firewall en tiempo de ejecución

Post by Loren »

Karinha, buenas:

lo primero es pedir perdón por la tardanza en contestar y gracias por su interés.

En principio creo que es Firewall. Hice pruebas en 2 equipos distintos:

En el PC con mi EXE permitido en Firewall:
aFiles :=oFtp:Directory(ALLTRIM(cruta)+'/*.exe')
devuelve aFiles lleno con un EXE encontrado y hace la actualización sin problemas.

En otro PC con mi EXE NO permitido en Firewall:
aFiles :=oFtp:Directory(ALLTRIM(cruta)+'/*.exe')
aFiles está vacío y por tanto NO hace la actualización.

Intentaré hacer pruebas con el código que me facilitas...

Ya te mantendré informado.
Mil Gracias.

saludos.
LORENZO.
Post Reply