Lo que quiero hacer es algo parecido a un sedkeys, osea quiero un mini programa con 2 botones uno que diga comenzar y otro que diga parar y que cuando le demos comenzar empiezo a ser la repeticon de las siguientes teclas: "Enter"+"Spacio"+"Enter" , como es que puedo hacer esto yo hice un sedkeys pero cuando le doy comenzar el mouse se me empieza a mover re lento y no puedo hacer nada por lo que me dijieron es por que es un sedkeys por eso.. queria ver la forma que no me pase eso y que aparte el programa ese sea invisible !
colocale un sleep para que no se cuelgue.
Cita de: Danyfirex en 21 Febrero 2013, 15:52 PM
colocale un sleep para que no se cuelgue.
Como hago ?
Entre cada Sendkeys, usa un DoEvents.
Para hacer apps sin GUI, usa modulos.
Saludos!
Lo que debes hacer para que el computador y por ende el mouse no anden lentos, es como te dicen arriba hacer un retardo entre pulsaciones mediante "sleep()". El código iría así:
'Sub que simula las teclas pulsadas.
Private Sub SimularTeclasPulsadas()
Dim Condicion As Boolean
While Condicion = True
'Aquí hago el sendkeys().
Thread.Sleep(50)
End While
End Sub
Lo que hace el código de arriba es generar ese retardo. Ahora, para hacerlo sin la GUI basta con hacer que ese código se ejecute en un hilo independiente. Pasos:
1: Al inicio de la aplicación creas un hilo del método en el cual se simulan las teclas pulsadas. (Debes hacerlo con un bucle que no termine o que termine bajo la condición que tú quieras, pero que sea continuo porque de otra forma no te funcionará)
2: Después de iniciar el hilo terminas la aplicación.
Al terminar la aplicación el hilo seguirá corriendo.
Código:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim hilo As New Thread(AddressOf SimularTeclasPulsadas)
hilo.Start()
Application.Exit()
End Sub
Sólo recuerda importar el System.threading porque para ambas cosas se necesita.
HOLA!!!
@Benjo:
Esto es VB Classic no net :¬¬
Pd: como dijo MCK, si tenes una rutina asi:
Private Sub Timer1_Timer()
SendKeys "{ENTER}"
SendKeys " "
End Sub
Agregale doevents asi:
Private Sub Timer1_Timer()
DoEvents
SendKeys "{ENTER}"
DoEvents
SendKeys " "
End Sub
GRACIAS POR LEER!!!