Visual Basic - Mover Puntero en Escritorio

Life is soft - evento anual de software empresarial
 
Vista:

Mover Puntero en Escritorio

Publicado por Manolo Camúñez (220 intervenciones) el 05/09/2000 00:00:00
Trabajo con VB4 en español; edición empresarial.
Necesito hacer un programilla que mueva el cursor del ratón por el Escritorio de Windows, a intervalos irregulares y a posiciones aleatorias.
¿Cómo se puede hacer esto? ¿Qué funciones hay que usar y de qué manera?
Estoy dándole vueltas a esto:
Function SetCursorPos Lib "usuario32" y Function GetCursorPos Lib "usuario32"
Type POINTAPI
x As Long
y As Long
End Type
Global papi As POINTAPI
Global PosActual As Long
Global PosNueva As Long
Pero... no sé por dónde salir. Me dá error al abrir dll, ¿qué dll será?
Creo que esto será facilísimo, pero yo no sé.
Ayuda para esto, porfa...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mover Puntero en Escritorio

Publicado por anonim (9 intervenciones) el 06/09/2000 00:00:00
COMO PUEDES HACERLO... PUES BIEN, HAY UNA API NOMBRADA:

Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

los parametros los puedes buscar el algun sitio, si no los sabes dimelo. Lo de aleatorio, hay funciones tipo "random" etc... no se como se llama en visual.

Bye
anonim
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mover Puntero en Escritorio

Publicado por Manolo Camúñez (220 intervenciones) el 06/09/2000 00:00:00
La Función esta que me dices:
Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
He estado buscando cómo usarla y por lo visto, los parámetros, aregumentos, los TYPE, las constantes y todo lo similar, hace referencia a MCI y WAVE (?).
Y usando alguna o varias de estas:
´ Rutinas de carga de recursos de cursores
Declare Function LoadBitmap Lib "usuario32" Alias "LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapName As String) As Long
Declare Function LoadCursor Lib "usuario32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As String) As Long
Declare Function ShowCursor Lib "usuario32" (ByVal bShow As Long) As Long
Declare Function SetCursorPos Lib "usuario32" (ByVal x As Long, ByVal y As Long) As Long
Declare Function SetCursor Lib "usuario32" (ByVal hCursor As Long) As Long
Declare Function GetCursorPos Lib "usuario32" (lpPoint As POINTAPI) As Long
Declare Function ClipCursor Lib "usuario32" (lpRect As Any) As Long
Declare Function GetCursor Lib "usuario32" () As Long
Declare Function GetClipCursor Lib "usuario32" (lprc As RECT) As Long
Me da fallo en la carga de la librería (?).
Intento usar la Función siguiente... y nada (?)
Declare Function FreeLibrary Lib "núcleo32" (ByVal hLibModule As Long) As Long
LO QUE ME LLEVA A LA CONCLUSIÓN QUE: "SOLO SÉ QUE NO SÉ NADA"
¿Me puedes ayudar, aunque sólo sea a que lea la posición del ratón y luego me lo mueva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mover Puntero en Escritorio

Publicado por anonim (9 intervenciones) el 08/09/2000 00:00:00
Public Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Public Const mouse_eventC = &H2 ´ el evento contiene un registro de evento de mouse
Public Const MOUSE_MOVED = &H1

mouse_event &H1, -1000, -1000, 0, 0
mouse_event &H1, 350, 20, 0, 0
mouse_event &H2, 1, 1, 0, 0

Lo que hace es:
Mover con &H1 a -1000(x) -1000(y) para poner el mouse en la posicion 0,0 sin importar donde este (esto es porque este evento mueve el mouse desde la posicion donde esta, no des de el inicio), entonces lo mueves a la posicion que quieres, y con &H2 hace el click

Si no esta bien dimelo que tengo un libro donde sale. Bye
anonim
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mover Puntero en Escritorio

Publicado por Manolo Camúñez (220 intervenciones) el 10/09/2000 00:00:00
¡¡¡FUNCIONA!!! ¡Monstruo total "anónimo", muchísimas gracias!
Lo he hecho como sigue; a quién le interese que lo copie:
En un módulo:
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_MOVE = &H1 ´ movimiento del mouse
Public Const MOUSEEVENTF_LEFTDOWN = &H2 ´ botón izquierdo presionado
Public Const MOUSEEVENTF_LEFTUP = &H4 ´ botón izquierdo soltado
Public Const MOUSEEVENTF_RIGHTDOWN = &H8 ´ botón derecho presionado
Public Const MOUSEEVENTF_RIGHTUP = &H10 ´ botón derecho soltado
Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 ´ botón central presionado
Public Const MOUSEEVENTF_MIDDLEUP = &H40 ´ botón central soltado
Public Const MOUSEEVENTF_ABSOLUTE = &H8000 ´ movimiento absoluto
Public PosActual
En un formulario (Load, Botón de comando, Timer, etc.). (En la sección Detalle del formulario se puede poner lo anterior, en lugar de en un módulo, cambiando Public por Private):
mouse_event &H1, 30, 40, 0, 0 ´30 es x, 40 es y
PosActual = MOUSEEVENTF_MOVE
etc.etc. En realidad lo he puesto más complicado, pero la idea es esta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar