Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Flamer en 9 Marzo 2015, 21:13 PM

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:
Código (vb) [Seleccionar]

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
Cita de: 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:
Código (vb) [Seleccionar]

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.

Código (vb) [Seleccionar]

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.

Código (vb) [Seleccionar]

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