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
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