[Ayuda] Clic en cierta posición del form.

Iniciado por Servia, 22 Noviembre 2008, 16:29 PM

0 Miembros y 1 Visitante están viendo este tema.

Servia

Hola, buscando por internet he encontrado este código el cual hace clic en un botón, pero para ello usa una variable que mueve el cursor:

Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Declare Function PostMessageBynum Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Type RECT
         Left As Long
         Top As Long
         Right As Long
         Bottom As Long
End Type
Private Sub Command1_Click()
    Me.Print "Usted hizo click el el Command 1"
End Sub
Private Sub Command2_Click()
    Me.Print "Usted hizo click el el Command 2"
    Dim l As Long, PosX As Long, PosY As Long, PosXY As Long
    Dim lpRect As RECT
   Dim SendInput As Long
    l = GetWindowRect(Command1.hwnd, lpRect)
    PosX = lpRect.Left + ((lpRect.Right - lpRect.Left) / 2)
    PosY = lpRect.Top + ((lpRect.Bottom - lpRect.Top) / 2)
    l = SetCursorPos(PosX, PosY)
    PosXY = (PosY - lpRect.Top) * 65536 + (PosX - lpRect.Left)
    l = PostMessageBynum(Command1.hwnd, WM_LBUTTONDOWN, 0&, PosXY)
    l = PostMessageBynum(Command1.hwnd, WM_LBUTTONUP, 0&, PosXY)
End Sub

¿Existe otro método/variable para hacer lo mismo pero sin que use en ningún momento el cursor?

cassiani

Haces click para que se ejecute un procedimiento no? entonces por qué no llamarlo simplemente...

Private Sub Command1_Click()
    Me.Print "Usted hizo click el el Command 1"
End Sub

Private Sub Form_Activate()
    Call Command1_Click
End Sub

Servia

#2
porque realmente no quiero que haga clic en un command sino en una página dentro de un webbrowser y no me sale.
Por lo que he entendido de el code que he puesto lo que hace es buscar la pos del botón y luego hacer clic en esa posición, pues si pongo un label o un button debajo del webbrowser las coordenadas serán las mismas pero hará clic en el webbrowser.
¿A que me complico la existencia?

seba123neo

Hola,ese codigo no sirve para ahcer lo que queres...vos qeures hacer como un auto-clikeo dentro del webbrowser, pues ese click debe ser un hipervinculo seguro..por lo tanto porque no directamente navegas a ese vinculo cada determinado timepo..?yo lo hice y funciona, por ejemplo para votar automaticamente en encuentas...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Servia

#4
Cita de: seba123neo en 22 Noviembre 2008, 20:29 PM
Hola,ese codigo no sirve para ahcer lo que queres...vos qeures hacer como un auto-clikeo dentro del webbrowser, pues ese click debe ser un hipervinculo seguro..por lo tanto porque no directamente navegas a ese vinculo cada determinado timepo..?yo lo hice y funciona, por ejemplo para votar automaticamente en encuentas...

saludos.

Pero el link va cambiando.
Conseguido,.