presionar boton de aplicacion ajena sabiendo su hwnd clase y caption

Iniciado por rubeng, 18 Agosto 2007, 17:09 PM

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

rubeng

weno voy a explicar todo desde cero para que se entienda :P
lo que quiero es cerrar un msgbox de un programa ajeno que q es del tipo SI NO lo que quiero hacer es que se presione el boton no paso los datos del msgbox
hwnd : 526962
class : #32770
y los del boton No
hwnd : 264734
type : button
caption : &No
pd: se me cierra el ollydbg =S de donde lo puedo bajar?

HaDeS, -

El problema es que cada vez que abres un programa a sus objetos se les asigna un nuevo handle, voy a ver como hago para obtener el handle de cada objeto de un form, cuando lo obtenga te lo posteo
saludos ;)

El ollydbg te lo podes descargar del webstorage de ricardo narvaja ( x'D ), http://ricardonarvaja.info/WEB/OTROS/HERRAMIENTAS/L-M-N-O-P/

rubeng

es un msgbox lo q tengo q hacer es cerrarlo o presionar el boton no.. tengo su caption (el titulito de la ventana) creo que con findwindow? alguien tiene un ejemplo? gracias

rubeng

algun ejemplo alguna idea?
seria algo asi buscar el msgbox con findwindow (nose hacerlo) y cerrarlo con postmessage o sendmessage distroy o close tampoco se hacerlo alguien tiene idea? graciaas

HaDeS, -

Se puede cerrar el messagebox? jajaja pues dime que yo se como hacerle, pensaba que decias que se tenia que oprimir obligatoriamente el boton aceptar :P

Si, dices que si, tonces edito este mensaje
saludos ;)


HaDeS, -

Bueno, prueba esto..
Código (vb) [Seleccionar]

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 Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Cerrar_Click()
HVentana = FindWindow(vbNullString, Titulo.Text)
If HVentana <> 0 Then SendMessage HVentana, &H10, 0, 0
End Sub


Saludos ;)

rubeng

no funciona estos es como un alt f4 hay q probar algo mas agresivo como wm distroy algo asi

HaDeS, -

Intenta en vez de un SendMessage, un PostMessage:
Código (vb) [Seleccionar]

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Cerrar_Click()
HVentana = FindWindow(vbNullString, Titulo.Text)
If HVentana <> 0 Then PostMessage HVentana, &H10, 0, 0
End Sub


Si no te funciona, avisa sigo mirando que se puede hacer :P
Saludos ;)

rubeng

no funciona me parece que es con sendmessage el parametro wm_quit o wm_distroy alguien tiene idea de estos parametros y para que sirve cada uno?