[VB 2010]Problema al Ocultar Programa

Topic created · 9 Mensajes · 765 Visitas
  • **Holas Infromáticos de UJ

    Tengo un problema con una Función Veran estoy hacindo un GM tool Pero tengo un problema al Hacer que el programa escriba los Comandos.

    De por si funciona pero yo quiero que el progrma Haga esto , al darle al Botón de dicho Comando quiero que se oculte programa y Luego aparesca el programa cuando termine de Escribir el comando

    lo eh puesto asi

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Timer1.Start()
            Timer1.Interval = 400
            Me.Hide()
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            SendKeys.Send("{enter}")
            SendKeys.Send("/go b1")
            SendKeys.Send("{enter}")
            Timer1.Stop()
            Me.Show()
        End Sub
    

    y lo que hace es que se vuelve loco y se oculta y aparece varias veces y escribe mal el Comando solo me escribe bien el comando sin ponerle la funcion del ocultarse y aaparacerse, aparte peta el pc no deja ahcer nada porque aparece y desaparece rapidamente y escribiendo al mismo tiempo :facepalm: :icon_cry2: :icon_cry2: :icon_cry2:

    Eh puesto tambíen la Función Asi

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Timer1.Start()
            Timer1.Interval = 400
            Me.Hide()
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            If Timer1.Interval = 400 Then
                SendKeys.Send("{enter}")
                SendKeys.Send("/go b1")
                SendKeys.Send("{enter}")
            End If
            Timer1.Stop()
            Me.Show()
        End Sub
    

    y sigue haciendo lo mismo algunas ayuda :icon_cry2: :icon_cry2: **

  • no tenias que hacer mucho solo decirle que antes de que ejecute el proceso que quieres que se minimice
    y al terminarlo que se vuelva abrir

    Public Class Form1
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Timer1.Start()
            Timer1.Interval = 400
    
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Me.WindowState = FormWindowState.Minimized
            If Timer1.Interval = 400 Then
                SendKeys.Send("{enter}")
                SendKeys.Send("/go b1")
                SendKeys.Send("{enter}")
            End If
            Timer1.Stop()
            Me.WindowState = FormWindowState.Normal
        End Sub
    End Class
    

    Lo que no ce es como haras para que te reconosca que los debe escribir en la ventana del metin2 por que haci como esta puede que lo escriba en cualquier lado

  • Bueno, el anterior código no está mal del todo, pero como piensas utilizar la funcion Me.WindowState si no has abierto la ventana que ocultó? xD
    Podrías hacerlo así
    Por otra parte metiste una condicional inservible dentro de un timer O_______O AWE-SOME te optimizo también el código xD

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Timer1.Start() 'inicia el bucle timer1
        
            Me.Hide() 'oculta la ventana
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
           
                SendKeys.Send("{enter}") 'envia
                SendKeys.Send("/go b1") 'envia
                SendKeys.Send("{enter}") 'envia
            Timer1.Stop() 'termina el bucle
            Me.Show() 'muestra la ventana
          Me.WindowState = FormWindowState.Normal 'muestra la ventana en tamaño normal después de haberla ocultado.
        End Sub
  • 😮 Me espiaste xd Miento
    despues de hacerlo me puse a probar y me quedo = pero lo depure y no funciona Miralo y veras que ocupara y espacio del sednkeys te va a dar solo 1 enter y como que o esta todo mal como que que minimiza a ver si preciona el boton es por que ha de estar la ventana abierta No cree ?
    Y como Vb ejecuta el codigo el linea primero minimiza ejecuta y vuelve y abre no esta mal es lo mismo Y yo no vi que lo ocultara oO

  • **weeeno intentare las 2 formas a ver cual resulta 😛 mejor

    si no funciona pss de todos modos lo haran manualmente pasando a la ventana de emtin pero esto trae consecuencia porque si no pasan a la ventana de emtin en el itnervalo del tiemr no escribe nada _xD_ **

  • A ver yo antes de nada adelanto que no sé VB pero la lógica me dice varias cosas. Primero: si la función start de Timer1 utiliza el campo Interval, creo que deberías darle el valor que quieras (en este caso 400) ANTES de llamar a la función start.

    Además, no sé que será un timer en VB, pero si es como en el Valve Hammer Editor lo que hace es esperar x milisegundos y después realizar una función (como setTimeout en JavaScript). En este caso si he entendido bien lo que debería hacer el programa es:
    -Esperar 400 ms.
    -Minimizarse.
    -Pulsar determinadas teclas.
    -Maximizarse de nuevo.

    En este caso creo que es posible que las teclas se pulsen ANTES de que el programa se haya minimizado, por lo que creo que lo que debería hacer el programa es:
    -Minimizarse.
    -Esperar 400 ms para que le de tiempo a minimizarse.
    -Pulsar las teclas que haga falta.
    -Volver a maximizarse de nuevo.

    Yo probaría a ponerlo así para ver si funciona. Un saludo! :wiii:

  • A ver yo antes de nada adelanto que no sé VB pero la lógica me dice varias cosas. Primero: si la función start de Timer1 utiliza el campo Interval, creo que deberías darle el valor que quieras (en este caso 400) ANTES de llamar a la función start.

    **el Timer es como un Cronómetor inteligente que hace que durante el intervalo del Tiempo se ejecuten las funciones Digo yo por que asi eh visto que es lo que hace.

    vee intente lo de anghios y sale lo msimo se Oculta y aparace chorrocientas veces y no escribe bn el comando
    lo de Archies lo msimo que anghios pero de forma corta y sigue haciendo

    lo que opte fue por hacer que cuando se apretara el Botón se minimazara el programa y escriba el comando o el texto luego que el user Maximice el programa manualmente otraves esto para no complicarme tanto

    Hawakings pa que tengas mas idea de como funciona el Timer

    yo Coloque un botón y dentro de ese botón colque para que iniciar el El timer con Timer1.start() y se minimzara el programa.
    dentro del Tiemer coloque la Función Que es la de escribir el texto y que se deteniera al terminar del escribir el texto colocandole alfinal de la función de escriber el comando Timer1.Stop() :miau:

    es algo sencillo :want:

    pero no logre el objetivo de que se mostrara el programa al terminar de escribir despes que se minimizara :icon_cry2: :icon_cry2:

    PD: Le quite el Intervalo del tiempo asi da tiempo de que el programa escriba el Texto Correctamente y no lo escriba chorrocientas veces :trollface: **

  • Vale ya se, a ver, si dejas el timer en un intervalo de 2000 es decir, 2 segundos, si dará tiempo a escribir la frase, aunque si tampoco da tiempo te recomiendo que uses la función sleep, para que una vez que tenga la ventana del metin abierta, te envíe los comandos que quieras.

  • **ya puse una froma mas fácile :3 gracia spor las respuesta de todo modos Le quite el intervalo de tiempo asi es mejor a escrito los comando perfectamente :charm: **