Doble click automático al botón cada X ''

Iniciado por -sagitari-, 19 Junio 2006, 22:27 PM

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

-sagitari-

Pues que no sé muy bien aún cómo hacer para que en un programa, que hay un botón cada x segundo se clickee dos veces el botón (sin tener que hacerlo yo)...


Si me podéis echar un cable...

Hendrix

En el foro yo pregunte algo asi.....se hace kon una API (que ahoramismo no me akuerdo de komo se llama)....aunke tendras que buskar als koordenadas de este boton...esto tampoko es deficil...y luego, kuando tengas las koordenadas, lo pones en la API y listo.... ;D ;D ;D

Salu2

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

-sagitari-

Cita de: _Hendrix_ en 19 Junio 2006, 22:56 PM
En el foro yo pregunte algo asi.....se hace kon una API (que ahoramismo no me akuerdo de komo se llama)....aunke tendras que buskar als koordenadas de este boton...esto tampoko es deficil...y luego, kuando tengas las koordenadas, lo pones en la API y listo.... ;D ;D ;D

Salu2




no sé con qué palabras lo puedo buscar :S...

hardkoo

Nuse si es bien bien lo k buskas, pero yo ice 1 programa ace tiempo que lo que hacia era capturar las coordenadas dl raton, y dspues simulaba 1 doble click en esas mismas coordenadas.
Te pongo el code aki aver si te sirve:

En el form:

Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4

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 SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

Private Sub Command1_Click()
    Dim Res As Long
x = Text1.Text
y = Text2.Text
    Res = SetCursorPos(x, y)
    mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, x, y, 0, 0
    mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, x, y, 0, 0
    mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, x, y, 0, 0
    mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, x, y, 0, 0
End Sub

Private Sub Timer1_Timer()
    Dim Posicion As POINTAPI
   
    GetCursorPos Posicion
   
     Text1.Text = Posicion.x
     Text2.Text = Posicion.y
Timer1.Enabled = False
End Sub

Private Sub Command2_Click()
Timer1.Enabled = True
End Sub


Y en un modulo (para capturar las coordenadas):
Option Explicit

Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Type POINTAPI
    x As Long
    y As Long
End Type


Los textbox k hay en el code no harian muxa falta, los puse para que se vieran + cosas en el programa xD. Y en el timer1 puse un intervalo d 5segundos para que te diera tiempo a situar el cursor en el lugar y a los 5 segundos capturara las cordenadas.

Aki te pongo tmb, las opciones que tienes en el mouse_event:

Const MOUSEEVENTF_MOVE = &H1 '  movimiento del mouse
Const MOUSEEVENTF_LEFTDOWN = &H2 '  botón izquierdo presionado
Const MOUSEEVENTF_LEFTUP = &H4 '  botón izquierdo soltado
Const MOUSEEVENTF_RIGHTDOWN = &H8 '  botón derecho presionado
Const MOUSEEVENTF_RIGHTUP = &H10 '  botón derecho soltado
Const MOUSEEVENTF_MIDDLEDOWN = &H20 '  botón central presionado
Const MOUSEEVENTF_MIDDLEUP = &H40 ' botón central soltado
Const MOUSEEVENTF_ABSOLUTE = &H8000 '  movimiento absoluto

-salu2-

Hans el Topo

Cita de: GreenDeviL en 19 Junio 2006, 22:27 PM
Pues que no sé muy bien aún cómo hacer para que en un programa, que hay un botón cada x segundo se clickee dos veces el botón (sin tener que hacerlo yo)...


Si me podéis echar un cable...

yo lo k haría sería meter un timer... le pones le interval k kieras (cada segundo son 1000 de interval creo...) y k el timer llamase al suceso doble click... xd

private sub timer1 ()
command1_DblClick()
end sub
 

Hans el Topo

conio, acabo de mirarlo y no tiene el botón evento doble click...
una preguntita... ¿para que quieres que haga doble click el botón?
 

-sagitari-

pero eso solamente le da un click xD

pero esto de buscar las coordenadas... no lo veo yo... porque

sabiendo que el click se le da al botón......


Hans el Topo

Cita de: GreenDeviL en 20 Junio 2006, 22:14 PM
pero eso solamente le da un click xD

pero esto de buscar las coordenadas... no lo veo yo... porque

sabiendo que el click se le da al botón......



¿para que quieres que de dblclick?
es que el botón según he mirado no tiene el evento dblclic ...xddxd
solo tiene el click...
 

hardkoo

ok ok, ntonces entendi mal.. jeje me creia que te referias a un programa externo.. (por eso te ponia lo d las coordenadas)... Pero un doble click en un boton? tampoco se muy bien para que lo kieres... kizas llamando al boton 2 veces es lo que quieres:

Private Sub Timer1_Timer()
Call Command1_Click
Call Command1_Click
Timer1.Enabled = False
End Sub


-salu2-