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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Clic en imagebox externo sendmessage
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Clic en imagebox externo sendmessage  (Leído 6,454 veces)
Cromatico

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Clic en imagebox externo sendmessage
« en: 14 Octubre 2012, 17:04 pm »

Hola que tal tanto tiempo gente, estoy clavado con un temita y es extraño lo que me pasa, seguramente algo estoy haciendo mal, la verdad no lo se... Cuestion lo que intento hacer es simular un simple click en un control picturebox externo, con api sendmessage, ojo ahora para hacer pruebas estoy probando con dos proyectos mios, uno tiene una picturebox que en el evento click manda un msgbox, y el otro proyecto es el que intenta clickear ese image...

Si yo mantengo apretado el click del mouse sobre cualquier lugar de la pantalla, sea o no alguno de los dos proyectos, me salta el msgbox, pero la idea seria que clicke automaticamente la imagen sin hacer nada con el mouse... El codigo es:

Código:
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
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

timer:
HWNDx = Text3.Text
Call SendMessage(HWNDx, WM_LBUTTONDOWN, 0, ByVal 0&)
Call SendMessage(HWNDx, WM_LBUTTONUP, 0, ByVal 0&)

Alguna idea de por que no envia correctamente el click? otra cosa, paara que clickee en el centro de ese control, tendria que usar getwindowrect, calcular el width y height y luego convertirlo verdad? Algo vi por algun lado pero no recuerdo! Igual el tema principal por ahora es que haga click como corresponde!

Muchas gracias!


« Última modificación: 14 Octubre 2012, 23:34 pm por Cromatico » En línea

Cromatico

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Re: Clic en imagebox externo sendmessage
« Respuesta #1 en: 17 Octubre 2012, 19:39 pm »

Actualizo un dato, si agrego el evento DOBLE CLICK en el proyecto que tiene el picturebox, y uso sendmessage con WM_LBUTTONDBLCLK, funciona pero va al evento doble click del picture obviamente.... No entiendo por que no funciona si quiero hacer solo un click, es decir, WM_LBUTTONDOWN y WM_LBUTTONUP...

Gracias!


En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Clic en imagebox externo sendmessage
« Respuesta #2 en: 17 Octubre 2012, 23:16 pm »

Hola Cromático, si querés un solo Click (usando los mensajes WM_LBUTTONDOWN y WM_LBUTTONUP)  probá con los eventos MouseDown o MouseUp, saludos

En línea

Adrian Desanti
Cromatico

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Re: Clic en imagebox externo sendmessage
« Respuesta #3 en: 18 Octubre 2012, 00:33 am »

pero te referis al mouse_event? se puede hacer con sendmessage? osea sin mover el mouse
En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Clic en imagebox externo sendmessage
« Respuesta #4 en: 18 Octubre 2012, 00:39 am »

No sé si endndí bien tu pregunta, tr referías a esto ?


Código:

Option Explicit

Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
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 Sub Form_Load()
Caption = 0
Timer1.Interval = 15
End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = vbLeftButton Then Caption = Caption + 1
End Sub

Private Sub Timer1_Timer()
  Call SendMessage(Picture1.hwnd, WM_LBUTTONDOWN, 0, 0&)
  Call SendMessage(Picture1.hwnd, WM_LBUTTONUP, 0, 0&)
End Sub



En línea

Adrian Desanti
Cromatico

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Re: Clic en imagebox externo sendmessage
« Respuesta #5 en: 18 Octubre 2012, 01:50 am »

Ahora entendi, pero si yo no tengo Picture1_MouseUp en el proyecto, no hay forma de hacer un evento click con sendmessage y que entre como si lo apretara manualmente? osea en Picture1_click
En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Clic en imagebox externo sendmessage
« Respuesta #6 en: 18 Octubre 2012, 03:25 am »

Si desde tu aplicacion tenes que mandar un click a un picture de una aplicacion externa (supongo que es por eso que decis que no tenes el evento Picture1_MouseUp) simplemente capturas el Hwnd del picture externo y le mandas los mensajes

Call SendMessage(hwnd_del_picture_externo, WM_LBUTTONDOWN, 0, 0&)
Call SendMessage(hwnd_del_picture_externo, WM_LBUTTONUP, 0, 0&)

los mensajes llegarán a la coordenada 1,1 (x-y) del control

si queres mandar el click a una coordenada espesífica tenes que usar Make_lParam

http://foro.elhacker.net/programacion_visual_basic/clickear_sin_mover_mouse-t334718.0.html;msg1652116#msg1652116

PD:  ByVal lParam de SendMessage as Long

 
« Última modificación: 18 Octubre 2012, 03:28 am por Dessa » En línea

Adrian Desanti
Cromatico

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Re: Clic en imagebox externo sendmessage
« Respuesta #7 en: 18 Octubre 2012, 04:28 am »

Dessa Gracias por responder, justamente eso es lo que indique a principio del post, y si lo hago en un textbox, me clickea, pero en un picturebox, o en un formulario, no manda el click, podes probarlo exactamente asi como me dijiste vos, y si lo mandas al hwnd de un textbox funciona, pero al de un picture no, esa es mi duda, tendras alguna idea?
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Clic en imagebox externo sendmessage
« Respuesta #8 en: 18 Octubre 2012, 05:07 am »

Podes utilizar el Spy++ para ver que mensajes se mandan cuando haces click, de ahí, empezas a tirar esos mismos mensajes hasta que lo tengas listo!
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Clic en imagebox externo sendmessage
« Respuesta #9 en: 18 Octubre 2012, 06:21 am »

También podés probar con SendInput: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v=vs.85).aspx

Para no tener que pasar por todo el tema de los mensajes...
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con sendmessage
Programación Visual Basic
Sai-To 7 2,294 Último mensaje 17 Abril 2008, 06:11 am
por cassiani
copiar datos de listview externo con sendmessage ?
Programación Visual Basic
Tengu 1 2,861 Último mensaje 10 Febrero 2010, 16:24 pm
por Dessa
SendMessage
Programación C/C++
calk9 5 3,416 Último mensaje 14 Septiembre 2011, 19:52 pm
por Eternal Idol
SendMessage
Programación Visual Basic
calk9 6 2,576 Último mensaje 20 Septiembre 2011, 00:53 am
por calk9
[C] Clic (con SendMessage) en una ventana externa
.NET (C#, VB.NET, ASP)
GonzaFz 3 3,358 Último mensaje 23 Mayo 2012, 01:37 am
por GonzaFz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines