[VB 2010]Problema al Ocultar Programa
-
**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 abrirPublic 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 xDPrivate 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 haciendolo 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: **