elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  MoveMouse [SRC]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: MoveMouse [SRC]  (Leído 2,015 veces)
Sanlegas

Desconectado Desconectado

Mensajes: 131


https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-


Ver Perfil
MoveMouse [SRC]
« en: 4 Octubre 2011, 09:36 am »

Bueno... estaba un poco aburrido y decidi crear esta funcion para mover el puntero arrastrandolo de una coordenada a otra, el uso... ps ustedes se lo dan  :xD

Código
  1. Option Explicit
  2.  
  3. Private Type POINTAPI
  4.    X As Long
  5.    Y As Long
  6. End Type
  7.  
  8. Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
  9. Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
  10. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  11.  
  12. Public Function MoveMouse(ByVal FinalX As Long, ByVal FinalY As Long, _
  13. Optional ByVal InitialX As Long = -1, Optional ByVal InitialY As Long = -1, Optional ByVal TimeToWait As Long = 5) As Boolean
  14. On Error GoTo err
  15.  
  16. Dim PosActual           As POINTAPI
  17. Dim I                   As Long
  18. Dim DX                  As Long
  19. Dim DY                  As Long
  20. Dim P                   As Double
  21. Dim StepVal             As Integer
  22.  
  23.            GetCursorPos PosActual
  24.  
  25.            If InitialX = -1 Then InitialX = PosActual.X
  26.            If InitialY = -1 Then InitialY = PosActual.Y
  27.  
  28.            DX = (FinalX - InitialX)
  29.            DY = (FinalY - InitialY)
  30.  
  31.            P = (DY / DX)
  32.  
  33.            If (DX < 0) Then StepVal = -1 Else StepVal = 1
  34.  
  35.            For I = 1 To DX Step StepVal
  36.                SetCursorPos InitialX + I, InitialY + Round((I * P))
  37.                Sleep TimeToWait
  38.            Next
  39.  
  40.            MoveMouse = True
  41. Exit Function
  42. err:
  43. End Function

Ejemplo de uso:
Código
  1. MoveMouse Screen.Width / Screen.TwipsPerPixelX, Screen.Height / Screen.TwipsPerPixelY, 0, 0
  2.  


Salu2!!


En línea

LordByte64

Desconectado Desconectado

Mensajes: 1


64 bits


Ver Perfil
Re: MoveMouse [SRC]
« Respuesta #1 en: 5 Octubre 2011, 10:17 am »

Gracias, lo miraré más tarde cuando esté en casa  :D


En línea

~ LordByte64
Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: MoveMouse [SRC]
« Respuesta #2 en: 5 Octubre 2011, 11:27 am »

en la funcion pide los datos en una pointapi
me parece que seria mas comodo ::)
En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
Sanlegas

Desconectado Desconectado

Mensajes: 131


https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-


Ver Perfil
Re: MoveMouse [SRC]
« Respuesta #3 en: 6 Octubre 2011, 06:06 am »

en la funcion pide los datos en una pointapi
me parece que seria mas comodo ::)

Ok, gracias por el punto.


Salu2!  :D
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: MoveMouse [SRC]
« Respuesta #4 en: 6 Octubre 2011, 08:38 am »

Revisa mejor el codigo... analisalo mas a fondo a simple vista te puedo decir muchos errores logicos...

* GetCursorPos() deberia llamarse solo si se requiere...
* las variables con prefijo InitialX... imagina que meto -888...
* P = (DY / DX)  sustituye / por \ y quita la funcion Round()... y asi declara a P como long...

* Por norma la 1era palabra del nombre de una palabra es minuscula... la siguiente palabra la 1ra letra es mayuscula seguida de minusculas...

Dim iNombre as integer
y/o
Dim nombreUsuarioX as string

las constantes son completamente en mayusculas... es por ello lo que te menciono...

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Sanlegas

Desconectado Desconectado

Mensajes: 131


https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-


Ver Perfil
Re: MoveMouse [SRC]
« Respuesta #5 en: 6 Octubre 2011, 09:43 am »



* GetCursorPos() deberia llamarse solo si se requiere...
* las variables con prefijo InitialX... imagina que meto -888...
* P = (DY / DX)  sustituye / por \ y quita la funcion Round()... y asi declara a P como long...


1.- Lo pensé pero por que no es un codigo que se necesite eficiencia en rapidez lo deje asi  :xD
2.- No tira error si meten numeros negativos, y si hago la comparación de que es un numero negativo tendria que compara si X o Y esta en el rango de las medidas del monitor por si estas son menores
3.- Al usar \ con la variable long se redondea antes de hacer la multiplicación de la proporcion y esto hace que se coma unos decimales y pierda el rumbo de donde deberia ir

Gracias por los datos, salu2 !
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines