elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Interceptar Click "ajenos" con SendMessage (Ejemplo)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Interceptar Click "ajenos" con SendMessage (Ejemplo)  (Leído 3,075 veces)
Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Interceptar Click "ajenos" con SendMessage (Ejemplo)
« en: 20 Enero 2009, 01:42 am »

Este es un simple ejemplo de como interceptar Clcks en botones de una aplicación externa, en este caso la calculadora de windows XP (en vista y seven hay que cambiar las clases) usando la constante BM_GETSTATE para SendMessage cuyo valor de retorno es de 512 si el button recibe un click, retorno de 620 si el button tiene el foco y retono 0 si no tiene foco, son retornos "especiales" para la calculadora ya que los retornos de casi todos los button de otras aplicaciones son de 44 si reciben el click o de 108 si el click se provoca con la barra espaciadora. se pueden saber los retornos con:

MsgBox SendMessage(Hndl, BM_GETSTATE, 0, 0) 

otras constantes para aprovechar

Private Const BM_GETSTATE = &HF2
Private Const WM_SETFOCUS = &H7
Private Const WM_KILLFOCUS = &H8
Private Const WM_ENABLE = &HA

Código:

Option Explicit

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) 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 Const BM_GETSTATE = &HF2

Private Sub Form_Load()
' cierro las calculadodas abiertas
While FindWindow("SciCalc", vbNullString) <> 0
Call SendMessage(FindWindow("SciCalc", vbNullString), &H112, &HF060&, 0)
Wend
Shell "calc"
Timer1.Interval = 100
End Sub

Private Sub Form_Unload(Cancel As Integer)
' cierro las calculadodas abiertas
While FindWindow("SciCalc", vbNullString) <> 0
Call SendMessage(FindWindow("SciCalc", vbNullString), &H112, &HF060&, 0)
Wend
End Sub

Private Sub Form_DblClick()
Shell "calc"
End Sub

Private Sub Timer1_Timer()

Call SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, &H2 Or &H1)

Dim Hndl As Long: Dim i As Long: Dim x As Long
Dim H(0 To 9) As Long: Dim ch(0 To 9) As Long

Hndl = FindWindow("scicalc", vbNullString)
If Hndl <> 0 Then
   
  For i = 0 To 9
    H(i) = FindWindowEx(Hndl, 0, vbNullString, i)
    ch(i) = SendMessage(H(i), BM_GETSTATE, 0, 0)
    If ch(i) = 512 Then Me.Cls: Me.Print "FOCO BOTON " & i
    If ch(i) = 620 Then
      Me.Cls: Me.Print "CLICK EN BOTON " & i
      x = GetTickCount: While GetTickCount < x + 450: DoEvents: Wend
    End If
  DoEvents
  Next i
   
  If ch(0) = 0 And ch(1) = 0 And ch(2) = 0 And ch(3) = 0 And ch(4) = 0 _
  And ch(5) = 0 And ch(6) = 0 And ch(7) = 0 And ch(8) = 0 And ch(9) = 0 _
  Then Me.Cls: Me.Print "NINGUN BOTON NUMÉRICO TIENE FOCO"
 
Else
   Me.Cls: Me.Print "CALCULADORA CERRADA"
End If

End Sub



Saludos

   


En línea

Adrian Desanti
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
API SendMessage para Mouse Click C#
.NET (C#, VB.NET, ASP)
arenoide 4 6,062 Último mensaje 29 Junio 2011, 21:51 pm
por Keyen Night
javascript "HTMLDivelement has no method click"[SOLUCIONADO]
Desarrollo Web
Pablo Videla 0 2,544 Último mensaje 30 Noviembre 2011, 14:22 pm
por Pablo Videla
cambiar un "value" con un click
Desarrollo Web
rolomo 1 1,719 Último mensaje 9 Marzo 2012, 07:03 am
por Mr. Crowley
Duda sobre explotar troyanos "ajenos"
Análisis y Diseño de Malware
boanerxe 5 4,489 Último mensaje 21 Octubre 2013, 23:15 pm
por boanerxe
Ayuda con funcion de "click" en raton
.NET (C#, VB.NET, ASP)
j0lama 1 2,176 Último mensaje 29 Julio 2015, 14:22 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines