• Viernes 8 de Noviembre de 2024, 21:43

Autor Tema:  Contador  (Leído 1177 veces)

monkytrox

  • Miembro activo
  • **
  • Mensajes: 42
    • Ver Perfil
Contador
« en: Lunes 2 de Octubre de 2006, 16:34 »
0
Hola como estan.......estoy a minutos de realizar una aplicacion en VB.NET, me pidieron que realizara una pequeña aplicación que se carge al ejecutarse Windows (2000) y que cuente 20 minutos, al completarse este tiempo, muestre a pantalla completa un mensaje que bloquee el pc e indique al usuario que debe tomar un descanso por 5 minutos, este mensaje deberá durar esos 5 minutos y luego deberá siguir ocupado normalmente el equipo al operador por otros 20 min y asi sucesivamente.

Alguien me puede dar alguna sugenrecia de como poder bloquear la ventana y emitir el mensaje...estoy con VS 2005 ...gracias por su tiempo


monkytrox

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Contador
« Respuesta #1 en: Martes 3 de Octubre de 2006, 15:01 »
0
Utiliza un timer.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

monkytrox

  • Miembro activo
  • **
  • Mensajes: 42
    • Ver Perfil
Re: Contador
« Respuesta #2 en: Martes 3 de Octubre de 2006, 18:57 »
0
gracias por la respuesta y si habia pensado en usar TIMER, pero lo hice con tres, me resulta pero en el final cae en un loop, la verdad es que nose por que pasa esto, si alguien podria ayudarme. Envío el codigo

Public Class FRMinicio
    Private Sub FRMinicio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'inicio con el form minimizado
        Me.WindowState = FormWindowState.Minimized
       
        'Establezco las propiedades de los Timer y comienzo y comienzo el conteo
        Me.TMRdescanso.Stop()
        Me.TMRinicio.Stop()
        Me.TMRmensaje.Stop()

        With Me.TMRinicio
            .Interval = 1000
            .Enabled = True
            .Start()
        End With
    End Sub
    Private Sub TMRinicio_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TMRinicio.Tick
        'variable estática que almacenará
        'su valor cada vez que entra en este evento
        Static Contador As Integer
        If Contador = 1 Then 'al segundo quiero que le form se oculte
            'Paramos el control Timer
            TMRinicio.Stop()
            'Lo deshabilito para asegurar que ya no esta correindo
            TMRinicio.Enabled = False
            'oculto el form
            Me.Visible = False
            'ejecuto el segundo timer
            With Me.TMRmensaje
                .Interval = 1000
                .Enabled = True
                ' .Start()
            End With
            Me.TMRdescanso.Stop()
        Else
            'Incrementamos en una unidad la variable estática
            Contador = Contador + 1
        End If
    End Sub

    Private Sub TMRmensaje_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TMRmensaje.Tick
        Static Contador As Integer
        If Contador = 20 Then 'EN ESTE CASO SOLO LO dejo 20 SEG PARA EJEMPLO el form debe aparecer a los 20 segundos de iniciado WIndows
            'este form se maximiza y lemuestra un mensaje al usuario
            TMRmensaje.Stop()
            TMRmensaje.Enabled = False
            Me.Visible = True
            Me.WindowState = FormWindowState.Maximized
            ''ejecuto el tercer TIMER que es el que controla el tiempo en que el FORM este maximizado
            With Me.TMRdescanso
                .Interval = 1000
                .Enabled = True
                .Start()
            End With
            ' LimpiaContador()
        Else
            Contador = Contador + 1
        End If
    End Sub

    Private Sub TMRdescanso_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TMRdescanso.Tick
        Static Contador1 As Integer
       
        If Contador1 = 10 Then '1200 los 20 minutos: AMODO DE EJEMPLO LO DEJO EN 10 SEG.
            'ESTE FORM DEBERIA PERMANECER MAXIMIZADO POR 10 SEG. luego de esto deberia volver a minimizarze
            TMRdescanso.Stop()
            TMRdescanso.Enabled = False
            Me.Visible = False
            'Me.WindowState = FormWindowState.Maximized
            'vuelve a llamar al Timer ANterior
            With Me.TMRmensaje
                .Interval = 1000
                .Enabled = True
                '.Start()
            End With
            TMRdescanso.Stop()
        Else
            Contador1 = Contador1 + 1
        End If
       
    End Sub
End Class