Hola buenas, estoy realizando un programa y un modulo de el me esta dando problemas.
El problema lo tengo en el sub procedimiento "Keydonwn"; he asignado la tecla F8 para guardar la posicion del puntero del mouse y F9 para hacer un call a otro sub procedimiento que simula un click izquierdo, pero a la hora de pulsar F9 no hace click en las coordenadas guardadas en las variables CoordX y CoordY sino donde este situado el raton.
Veo que cambiando el call al LeftClick() por unos labels para comprobar las variables devuelven un valor de 0 y no los valores recogidos cuando hago F8.
Gracias ante todo a toda la comunidad por tantos años que lleva online esta pagina.
PD: Sé que el código es chapucero (por decir algo) y poco profesional.
El problema lo tengo en el sub procedimiento "Keydonwn"; he asignado la tecla F8 para guardar la posicion del puntero del mouse y F9 para hacer un call a otro sub procedimiento que simula un click izquierdo, pero a la hora de pulsar F9 no hace click en las coordenadas guardadas en las variables CoordX y CoordY sino donde este situado el raton.
Veo que cambiando el call al LeftClick() por unos labels para comprobar las variables devuelven un valor de 0 y no los valores recogidos cuando hago F8.
Gracias ante todo a toda la comunidad por tantos años que lleva online esta pagina.
PD: Sé que el código es chapucero (por decir algo) y poco profesional.
Código (vb) [Seleccionar]
Option Explicit
Private 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)
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Const MOUSEEVENTF_MOVE = &H1 ' movimiento del mouse
Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' botón izquierdo presionado
Private Const MOUSEEVENTF_LEFTUP = &H4 ' botón izquierdo soltado
Private Const MOUSEEVENTF_RIGHTDOWN = &H8 ' botón derecho presionado
Private Const MOUSEEVENTF_RIGHTUP = &H10 ' botón derecho soltado
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' botón central presionado
Private Const MOUSEEVENTF_MIDDLEUP = &H40 ' botón central soltado
Private Const MOUSEEVENTF_ABSOLUTE = &H8000 ' movimiento absoluto
Private Type POINTAPI
X As Long
Y As Long
End Type
Dim Mouse As POINTAPI
Private Sub Form_Load()
Timer1.Interval = 100
Timer2.Interval = 1000
lblTimeNow.Caption = Time
End Sub
Private Sub Timer1_Timer()
Call GetCursorPos(Mouse)
lblLiveX.Caption = Mouse.X
lblLiveY.Caption = Mouse.Y
End Sub
Private Sub Timer2_Timer()
lblTimeNow.Caption = Time
End Sub
Private Sub Form_KeyDown(Keycode As Integer, Shift As Integer)
Select Case Keycode
Case 119 'F8
Dim CoordX As Integer
Dim CoordY As Integer
CoordX = Mouse.X
CoordY = Mouse.Y
lblMemX.Caption = CoordX
lblMemY.Caption = CoordY
lblMemSav.Caption = "Saved!"
Case 120 'F9
Call LeftClick
End Select
End Sub
Public Sub LeftClick()
LeftDown
LeftUp
End Sub
Public Sub LeftDown()
mouse_event MOUSEEVENTF_LEFTDOWN, CoordX, CoordY, 0, 0
End Sub
Public Sub LeftUp()
mouse_event MOUSEEVENTF_LEFTUP, CoordX, CoordY, 0, 0
End Sub
Public Sub MoveMouse()
mouse_event MOUSEEVENTF_MOVE, lblMemX, lblMemY, 0, 0
End Sub