Red de conocimiento informático - Programación de la red - Por favor, dígame, ¿cómo usar el mouse para simular botones en VB?

Por favor, dígame, ¿cómo usar el mouse para simular botones en VB?

VB simula el movimiento y los clics del mouse.

Necesitas usar funciones API

Este código requiere un formulario~~tres botones de comando, cuatro cuadros de etiquetas y un módulo.

Nota: El siguiente código es Form1.

Nota: * * * * * * * * * * *[Función]* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.

#Si es Win32, entonces

privado Declare Sub mouse _ event Lib " usuario 32 "(ByVal dw flags es Long, ByVal dx es Long, ByVal dy es Long, ByVal cButtons es Long, ByVal dwExtraInfo es Long)

Nota: lista de parámetros

Nota: dwflags - long es una combinación de los siguientes símbolos.

Nota: MOUSEEVENTF_ABSOLUTE

Nota: dx y dy especifican la posición absoluta en el sistema de coordenadas del mouse. En el sistema de coordenadas del mouse, la pantalla es horizontal y vertical.

Nota: La dirección vertical se divide en 65535×65535 unidades en promedio - MOUSEEVE.

Nota: NTF_Move

Nota: Mover el mouse

Nota: MOUSEEVENTF_LEFTDOWN

Nota: Simular presionando el botón izquierdo del mouse.

Nota: MOUSEEVENTF_LEFTUP

Nota: Simula levantar el botón izquierdo del ratón.

Nota: MOUSEEVENTF_RIGHTDOWN

Nota: Simula presionar el botón derecho del mouse.

Nota: MOUSEEVENTF_RIGHTUP

Nota: Simula presionar el botón derecho del mouse.

Nota: MOUSEEVENTF_MIDDLEDOWN

Nota: Simula la pulsación del botón central del ratón.

Nota: MOUSEEVENTF_MIDDLEUP

Nota: Simula la pulsación del botón central del ratón.

Nota: dx

Nota: Largo, dependiendo de si se especifica el indicador MOUSEEVENTF_ABSOLUTE, especifica la posición absoluta o fase en la dirección horizontal.

Nota: para movimiento

Nota: dy - largo, se especifica vertical dependiendo de si se especifica el indicador MOUSEEVENTF_ABSOLUTE.

Nota: Movimiento relativo en posición o dirección absoluta.

Nota: Botón largo, sin usar.

Nota: dwextrainfo-long, valor que no se suele utilizar. Utilice la función GetMessageExtraInfo para obtener

Nota: este valor. Los valores disponibles dependen del controlador específico.

#End If Nota: WIN32

Nota: * * * * * * * * * < lt[EOF] gt*********** * ***********************

Atenuar p1 como POINTAPI, p2 como POINTAPI

Tamaño x< / p>

Dim Y

Dim X1

Dim Y1

Evento de mouse constante privado f _ MOVE = amp H1

evento privado de mouse Const f _ izquierda abajo = amp; deuterio

evento privado de mouse Const f _ izquierda arriba = amp;

Subcomando privado 1_Click()

MsgBox "No"

Conector final

Subcomando privado 2_Click()

MsgBox "es"

Conector final

Subcomando privado 3_Click()

Llamar a MoveCursor(p1, p2) Nota: El mouse se controla mediante el comando 1 - > >Control; Comando 2

mouse_event evento del mouse f_ABSOLUTE o MOUSEEVENTF_LEFTDOWN,X1,Y1,0,0

mouse_event evento del mouse f_ABSOLUTE o MOUSEEVENTF_LEFTUP,X1, Y1, 0, 0

Conector final

Private subform_Load()

Atenuar rect5 como RECT

Llamar a getwindowrect( Command1. hwnd, rect5) Nota: Obtener las coordenadas del comando 1 con respecto a la pantalla.

p1.x = (rect5. Izquierda 5. Derecha)\ 2

p1. Y = (rect5.ToP rect5.Bottom)\ 2

Llamar a GetWindowRect(Command2.hwnd, rect5)

p2.x = (rect5. Izquierda 5. Derecha)\ 2

p2. Y = (rect5.Arriba rect5.Abajo)\ 2

Etiqueta1. Título = p2.x

Etiqueta 2. título = p2. Y

x = Etiqueta1. título

Y = etiqueta2. Título

X1 = (65535 \ 1024) * x

Y1 = (65535 \ 768) * Y

Etiqueta 3. Título = X1

Etiqueta 4. Caption = Y1

Conector final

Nota: El siguiente código está en el módulo.

Signo RECT

Igual longitud en el lado izquierdo

Mismo largo en la parte superior

Mismo largo

Misma longitud en la parte inferior

p>

Tipo final

Tipo POINTAPI

x tiene la misma longitud

Siempre que

Tipo de fin

Declarar la función SetCursorPos Lib "usuario 32" (ByVal x es Long, ByVal Y es Long) como Long

Declarar la función GetWindowRect Lib "usuario 32" " (ByVal hwnd es Long, lpRect es Rect) como Long

Declare la biblioteca de suspensión secundaria "kernel 32" (ByVal dw milisegundos como larga)

cursor de movimiento secundario público (FromP As point API, ToP As POINTAPI)

Dim stepx tiene la misma longitud, stepy tiene la misma longitud, k tiene la misma longitud

Dim i tiene la misma longitud, j es la misma longitud, sDelay tiene la misma longitud

stepx = 1

stepy = 1

i = (ToP.x - FromP.x)

Si ilt0, entonces stepx = -1

i = (top.Y - FromP . y)

Si i lt0 entonces stepy = -1

Para i = FromP.x To ToP.x Paso pasox

Llamar a SetCursorPos(i,FromP . y)

Sleep(1)

Siguiente i

Porque i = DesdeP. y a la cima. Paso a paso

Llamar a SetCursorPos(ToP.x, I)

Sleep(1)

Siguiente I

Conector final

p>