Ver Mensaje Individual
  #3
Antiguo 15 de julio de 2016, 23:08
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 21.09.2026 14:47
Posts Posts: 458
Likes enviados Enviados: 269
Likes recibidos Recibidos: 243

hola:

Te cuento cómo lo hice:

* Tengo un timer en el menú principal seteado en un segundo, en el evento timer puse el siguiente código:

Código COBOL:
  1.            if caduce-habilita = pow-true
  2.               add 1             to caduce-seg
  3.               if caduce-seg >= caduce-tiempo
  4.                  move pow-false    to "active" of tmrCaduce
  5.                  invoke pow-self "callform" using "usu99" "usuarios.dll"
  6.                  if caduce-seg not = zeros
  7.                     invoke pow-self "closeform"
  8.                  end-if
  9.                  move pow-true     to "active" of tmrCaduce
  10.               end-if
  11.            end-if
  12.            compute caduce-falta = caduce-tiempo - caduce-seg

tengo variables globales external que están dentro de un "copy" en todos los forms.

Código COBOL:
  1.        01  variables-caduce global external.
  2.            02 caduce-cuenta             pic x(10).
  3.            02 caduce-nom                pic x(30).
  4.            02 caduce-clave              pic x(10).
  5.            02 caduce-tiempo             pic 9(4).
  6.            02 caduce-seg                pic 9(4).
  7.            02 caduce-falta              pic 9(4).
  8.            02 caduce-habilita           pic s9(5) comp-5.
  9.            02 caduce-notiempo           pic 9.

y en los eventos Prekeypress y Click de todos los formularios:

Código COBOL:
  1.            move zeros        to caduce-seg.

Paso a explicar un poco.

La variable "caduce-habilita" la utilizo para habilitar o deshabilitar la función, porque cuando el usuario está realizando un proceso y éste es largo no quiero que se le corte.
"caduce-seg" es la variable donde voy contando los segundos que van pasando y "caduce-tiempo" tiene la cantidad de segundos totales que le permito de inactividad.
Cuando se cumple ese tiempo, llamo a un form para que vuelva a colocar la contraseña, si ésta falla se cierra el sistema.

Y lo que falta es en los eventos Prekeypress y Click de todos los forms, poner en cero "caduce-seg" para que cuando presione cualquier tecla o haga click comience de nuevo a contar el tiempo.

Espero haber sido claro.

Saludos.

Fito...
Fito is offline   Responder Con Cita