Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Gonzah91 en 21 Febrero 2013, 08:45 am



Título: EN VB!
Publicado por: Gonzah91 en 21 Febrero 2013, 08:45 am
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 !


Título: Re: EN VB!
Publicado por: Danyfirex en 21 Febrero 2013, 15:52 pm
colocale un sleep para que no se cuelgue.


Título: Re: EN VB!
Publicado por: Gonzah91 en 21 Febrero 2013, 17:04 pm
colocale un sleep para que no se cuelgue.
Como hago ?


Título: Re: EN VB!
Publicado por: MCKSys Argentina en 21 Febrero 2013, 19:00 pm
Entre cada Sendkeys, usa un DoEvents.

Para hacer apps sin GUI, usa modulos.

Saludos!


Título: Re: EN VB!
Publicado por: El Benjo en 28 Febrero 2013, 05:56 am
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í:

Código
  1. 'Sub que simula las teclas pulsadas.
  2. Private Sub SimularTeclasPulsadas()
  3.    Dim Condicion As Boolean
  4.    While Condicion = True
  5.        'Aquí hago el sendkeys().
  6.        Thread.Sleep(50)
  7.    End While
  8. End Sub
  9.  

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:

Código
  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.    Dim hilo As New Thread(AddressOf SimularTeclasPulsadas)
  3.    hilo.Start()
  4.    Application.Exit()
  5. End Sub
  6.  

Sólo recuerda importar el System.threading porque para ambas cosas se necesita.


Título: Re: EN VB!
Publicado por: 79137913 en 28 Febrero 2013, 14:08 pm
HOLA!!!

@Benjo:
Esto es VB Classic no net  :¬¬

Pd: como dijo MCK, si tenes una rutina asi:

Código
  1. Private Sub Timer1_Timer()
  2.    SendKeys "{ENTER}"
  3.    SendKeys " "
  4. End Sub
  5.  

Agregale doevents asi:

Código
  1. Private Sub Timer1_Timer()
  2.    DoEvents
  3.    SendKeys "{ENTER}"
  4.    DoEvents
  5.    SendKeys " "
  6. End Sub


GRACIAS POR LEER!!!