Caso realmente extraño

Caso realmente extraño

Postby Ramon Paredes » Wed Oct 29, 2008 3:41 pm

Hola amigos del foro,

He estado experimentando un problema un tanto extraño, tengo un sistema que al ejecutarse lo primero que presenta es una pantalla para el login y password resulta de que hace unos dos dias aca cuando ejecutan la aplicacion aparece la pantalla inicial por unos segundos y deaparece o se cierra sin dar ningun mensaje de error ni ninguna pista, si suspendo la clave entra a la pantalla principal pero cuando abro un menu con pantallas estas quedan intermitentes, se presentan y desaparecen en segundos y ciclicamente,

Agradeceria cualquie orientacion al respecto, esto ya ha pasado en dos clientes y ni idea que podra ser,

Como siempre toda ayuda es bienvenida

Saludos desde Managua , Nicaragua

Ramon Paredes
... Desde la Tierra de lagos y Volcanes......
User avatar
Ramon Paredes
 
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Postby karinha » Wed Oct 29, 2008 4:13 pm

Podrias muestrar el codigo y el dialogo? El dialogo és modal?

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7453
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Gracias por responder

Postby Ramon Paredes » Wed Oct 29, 2008 4:33 pm

Karinha,

Gracias por reponder el asunto es que uso ventanas sdi, el sistema en mencion esta funcionando sin problemas al ejecutarse presenta la pantalla de bienvenida con el get de login y clave de acceso, hay 4 maquinas conectadas a el ya que trabajan en redes , 2 funcionan sin problemas pero en 2 maquinas presenta la pantalla inicial y al segundo desaparece sin dejar rastros,

al inicio de mi programa principal tengo esto :

pAceptar := .F.
pAceptar = !Veri_clave()
IF pAceptar
CLOSE DATA
RETURN nil
ENDIF
CLOSE DATA

// aqui valido al usuario

y la funcion veri_clave esta asi :

//====================
FUNCTION VERI_CLAVE
//====================

local oDlg
local oFont1,oBmp
locaL Otxtmsg, mClave,oclave, mSiClave,oSiClave,mClaveg,oClaveg,mCancelar
Local oCar, oLetras[10], I

mCancelar := .F.

SELECT A
IF DLk_Abre("USUARIOS",.F.) = .F.
Close Data
Return .F.
Endif
Set Index To USUARIOS

SELECT B
IF DLk_Abre("C:\DATA1\LOGSIST",.F.)= .F.
Close Data
Return .F.
Endif

pUsuario := B->Nombre
oSiClave := B->SiClave

oCar = ""

For I = 1 To 10
oLetras[i] = asc(substr(LOGSIST->clave,I,1))+64
ocar = ocar + CHR(oLetras[i])
Next

If B->SiClave
oClave := oCar
Else
oClave := Space(10)
Endif

Do While .T.

pAceptar := .F.

DEFINE DIALOG oDlg RESOURCE 1

REDEFINE GET oUsuario Var pUsuario ID 101 of oDlg
REDEFINE GET oClave Var mClave ID 102 of oDlg PICTURE "@!"
REDEFINE BITMAP oBMP ID 160 OF oDlg FILE "KEYS.BMP" SCROOL ADJUST UPDATE

REDEFINE BUTTON ID 130 of oDlg ACTION (pAceptar:= .T. ,oDlg:End())
REDEFINE BUTTON ID 131 of oDlg ACTION (pAceptar:= .F.,mCancelar := .T.,oDlg:End())

ACTIVATE DIALOG oDlg CENTERED

If pAceptar = .F.
Return .F.
Endif

If pAceptar
If Empty(pUsuario)
MsgAlert( "Nombre del Usuario esta Vacio " )
loop
Endif

If Empty(mClave)
MsgAlert( "La Clave esta en Blanco" )
Loop
EndIf

Select A
If !DbSeek( pUsuario )
MsgAlert( "Usuario no existe en la Base" )
loop
Endif

popc01 := USUARIOS->OPC01
POPC02 := USUARIOS->OPC02
POPC03 := USUARIOS->OPC03
POPC04 := USUARIOS->OPC04

pInicial := Usuarios->Inicial
oClaveg := Usuarios->clave

oCar = ""
For I = 1 To 10
oLetras[i] = asc(substr(usuarios->clave,I,1))+64
ocar = ocar + CHR(oLetras[i])
Next

If alltrim(ocar) = alltrim(mClave)
SELECT B
RLOCK()
B->Nombre := pUsuario
B->Abre_Act := .T.
B->SiClave := .F.
B->Clave := space(10)

COMMIT
UNLOCK
Return .T.
Else
MsgAlert( "La Clave esta invalida" )
Loop
EndIf

Endif
Exit

Enddo

Return .F.

es realmente extraño, no hay error, no hay mensajes nada,y cuando suspendo este procedimiento de clave entonces a cualquier pantalla de los menues que entre sucede lo mismo en esas dos maquinas afectadas

ojala me haya explicado,

Saludes y agradecido

Ramon Paredes
... Desde la Tierra de lagos y Volcanes......
User avatar
Ramon Paredes
 
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Postby karinha » Wed Oct 29, 2008 6:18 pm

DEFINE DIALOG oDlg RESOURCE 1

Ramon, pueste este dialogo por favor y intente renombrar el numero uno por un nombre proprio para el dialogo.

Gracias.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7453
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby karinha » Wed Oct 29, 2008 6:31 pm

Code: Select all  Expand view
STATIC pAceptar := .F.


   //pAceptar := .F.

   pAceptar = !Veri_clave()
   IF pAceptar
      CLOSE DATA
      RETURN nil
   ENDIF
   CLOSE DATA

// aqui valido al usuario

y la funcion veri_clave esta asi :

//====================
FUNCTION VERI_CLAVE()
//====================

local oDlg
local oFont1,oBmp
locaL Otxtmsg, mClave,oclave, mSiClave,oSiClave,mClaveg,oClaveg,mCancelar
Local oCar, oLetras[10], I

mCancelar := .F.

SELECT A
IF DLk_Abre("USUARIOS",.F.) = .F.
   Close Data
   Return .F.
Endif
Set Index To USUARIOS

SELECT B
IF DLk_Abre("C:\DATA1\LOGSIST",.F.)= .F.
   Close Data
   Return .F.
Endif

pUsuario := B->Nombre
oSiClave := B->SiClave

oCar = ""

For I = 1 To 10
   oLetras[i] = asc(substr(LOGSIST->clave,I,1))+64
   ocar = ocar + CHR(oLetras[i])
Next

If B->SiClave
   oClave  := oCar
Else
   oClave  := Space(10)
Endif

//Do While .T.  //-> Ramon, no haga asi...

//   pAceptar := .F. // STATIC

   DEFINE DIALOG oDlg RESOURCE 1  //-> Mejor es un nombre para el dialogo

   REDEFINE GET oUsuario    Var   pUsuario ID 101 of oDlg
   REDEFINE GET oClave      Var   mClave   ID 102 of oDlg PICTURE "@!"
   REDEFINE BITMAP oBMP  ID 160 OF oDlg FILE "KEYS.BMP" SCROOL ADJUST UPDATE

   REDEFINE BUTTON ID 130 of oDlg ACTION (pAceptar:= .T. ,oDlg:End())
   REDEFINE BUTTON ID 131 of oDlg ACTION (pAceptar:= .F.,mCancelar := .T.,oDlg:End())

   ACTIVATE DIALOG oDlg CENTERED

   If pAceptar = .F.
      Return .F.
   Endif

   If pAceptar
      If Empty(pUsuario)
         MsgAlert( "Nombre del Usuario esta Vacio " )
         RETURN( .F. )
      Endif

      If Empty(mClave)
         MsgAlert( "La Clave esta en Blanco" )
         RETURN( .F. )
      EndIf

      Select A
      If !DbSeek( pUsuario )
         MsgAlert( "Usuario no existe en la Base" )
         RETURN( .F. )
      Endif

      popc01  := USUARIOS->OPC01
      POPC02  := USUARIOS->OPC02
      POPC03  := USUARIOS->OPC03
      POPC04  := USUARIOS->OPC04

      pInicial := Usuarios->Inicial
      oClaveg  := Usuarios->clave

        oCar = ""
        For I = 1 To 10
            oLetras[i] = asc(substr(usuarios->clave,I,1))+64
            ocar = ocar + CHR(oLetras[i])
        Next

        If alltrim(ocar) = alltrim(mClave)
           SELECT B
           RLOCK()
           B->Nombre   := pUsuario
           B->Abre_Act := .T.
           B->SiClave  := .F.
           B->Clave    := space(10)

         COMMIT
         UNLOCK
         Return .T.
      Else
         MsgAlert( "La Clave esta invalida" )
         RETURN( .F. )
      EndIf

   Endif
   Exit

//Enddo //-> No precisa de un looping

Return( .F. )
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7453
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby Antonio Linares » Wed Oct 29, 2008 7:24 pm

Ramón,

Has modificado algo recientemente en la aplicación ?

Has instalado algo nuevo en esos ordenadores que fallan ?
Tienen los antivirus al dia ?

Si la aplicación funciona bien en algunos ordenadores, entonces debe funcionar bien en todos, siempre que usen la misma configuración (versión de Windows, service packs instalados, etc.)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41476
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

bueno, una solucion no la mejor pero.....

Postby Ramon Paredes » Wed Oct 29, 2008 11:42 pm

Joao,

segui tus recomendaciones y mi codigo se simplifico un poco pero el problema persistio en las maquinas , presentan las pantallas por un segundo y desaparecen,

Antonio:

No hemos hecho cambios en el software y las maquinas tienen la misma configuracion de siempre, son terminales de un servidor que tiene instalado windows 2003 server, lo raro es que en 2 funciona al 100 y en dos sucede este fenomeno.

Bueno para descartar un posible problema de virus se tomo uno de los equipos se formateo y reinstalo el windows y demas se configuro el sistema y su funcionamiento esta ok, todo parece indicar que puede haber sido ocasionado por algun virus, si alguien del foro tiene un problema parecido y tiene otra solucion pues seria formidable publicarla.

Agradezco a ambos por su pronta ayuda,

Saludes desde managua, nicaragua,

Ramon Antonio Paredes
... Desde la Tierra de lagos y Volcanes......
User avatar
Ramon Paredes
 
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Postby Antonio Linares » Thu Oct 30, 2008 12:18 am

Ramón,

Me alegro de que lo hayas podido solucionar,
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41476
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 54 guests