Por favor, dígame, ¿cómo usar el mouse para simular botones en VB?
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 p>
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 p>
Porque i = DesdeP. y a la cima. Paso a paso
Llamar a SetCursorPos(ToP.x, I)
Sleep(1)
Siguiente I
Conector final p>
p>