Título: [Ayuda] Simular un click del mause
Publicado por: Flamer en 9 Marzo 2015, 21:13 pm
Hola amigos estoy intentando simular un click con el mause, ya lo intente con un script pero no se puede ya que es muy limitado y ahora lo intento desde vb6 este es el codigo que tengo: Option Explicit Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private P_HANDLE As Long Private P_PID As Long Private Const PROCESS_ALL_ACCESS = &H1F0FFF ' constantes para SendMessage Private Const WM_LBUTTONDBLCLK As Long = &H203 ' izquierdo doble click Private Sub Command1_Click() If FindWindow(vbNullString, "BlueStacks App Player for Windows (beta-1)") Then GetWindowThreadProcessId FindWindow(vbNullString, "BlueStacks App Player for Windows (beta-1)"), P_PID P_HANDLE = OpenProcess(PROCESS_ALL_ACCESS, False, P_PID) End If Timer1.Interval = 500 End Sub Private Sub Form_Unload(Cancel As Integer) CloseHandle P_HANDLE End Sub Private Sub Timer1_Timer() Call SendMessage(P_HANDLE, WM_LBUTTONDBLCLK, 1, ByVal 0&) End Sub
saludos flamer y haber quien me hecha una mano
Título: Re: [Ayuda] Simular un click del mause
Publicado por: Miseryk en 10 Marzo 2015, 14:13 pm
Hola amigos estoy intentando simular un click con el mause, ya lo intente con un script pero no se puede ya que es muy limitado y ahora lo intento desde vb6 este es el codigo que tengo: Option Explicit Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private P_HANDLE As Long Private P_PID As Long Private Const PROCESS_ALL_ACCESS = &H1F0FFF ' constantes para SendMessage Private Const WM_LBUTTONDBLCLK As Long = &H203 ' izquierdo doble click Private Sub Command1_Click() If FindWindow(vbNullString, "BlueStacks App Player for Windows (beta-1)") Then GetWindowThreadProcessId FindWindow(vbNullString, "BlueStacks App Player for Windows (beta-1)"), P_PID P_HANDLE = OpenProcess(PROCESS_ALL_ACCESS, False, P_PID) End If Timer1.Interval = 500 End Sub Private Sub Form_Unload(Cancel As Integer) CloseHandle P_HANDLE End Sub Private Sub Timer1_Timer() Call SendMessage(P_HANDLE, WM_LBUTTONDBLCLK, 1, ByVal 0&) End Sub
saludos flamer y haber quien me hecha una mano Por ahora encontré como enviar MOUSEDOWN y MOUSEUP y funcionan, no logré el click común pero ésto sería casi lo mismo, y el doble click tendría que verlo. Option Explicit Private Const WM_LBUTTONDOWN As Long = &H201 Private Const WM_LBUTTONUP As Long = &H202 Private Const MK_LBUTTON As Long = &H1& Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Sub SimClick(ByVal windowHwnd As Long, ByVal PosX As Integer, ByVal PosY As Integer) SendMessage windowHwnd, WM_LBUTTONDOWN, MK_LBUTTON, MakeDWord(PosX, PosY) SendMessage windowHwnd, WM_LBUTTONUP, 0, MakeDWord(PosX, PosY) End Sub Private Function MakeDWord(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long MakeDWord = (HiWord * &H10000) Or (LoWord And &HFFFF&) End Function Private Sub Command1_Click() Dim hwnd As Long hwnd = FindWindow(vbNullString, "CLICKME") Call SimClick(hwnd, CInt(50), CInt(50)) End Sub
Título: Re: [Ayuda] Simular un click del mause
Publicado por: Miseryk en 10 Marzo 2015, 15:28 pm
Acá tenés el doble click. Option Explicit ' función SendMessage Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hwnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Const WM_LBUTTONDBLCLK As Long = &H203 Private Function MakeDWord(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long MakeDWord = (HiWord * &H10000) Or (LoWord And &HFFFF&) End Function Public Sub SimDobleClick(ByVal hwnd As Long, ByVal PosX As Integer, ByVal PosY As Integer) Call SendMessage(hwnd, WM_LBUTTONDBLCLK, 0, MakeDWord(PosX, PosY)) End Sub Private Sub Command1_Click() Call SimDobleClick(FindWindow(vbNullString, "CLICKME"), 100, 100) End Sub
Título: Re: [Ayuda] Simular un click del mause
Publicado por: Flamer en 11 Marzo 2015, 05:49 am
hola amigo ya lo solucione en el mismo dia...
Pero doy gracias alos 2 por el apoyo
bueno saludos flamer y gracias
|