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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Presionar boton de un programa externo. ( VB. Net )
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Presionar boton de un programa externo. ( VB. Net )  (Leído 5,934 veces)
70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
Presionar boton de un programa externo. ( VB. Net )
« en: 1 Marzo 2010, 15:11 pm »

Necesito ejecutar un programa externo algo como process.start pero luego quiero presionar un boton que contiene el programa.

Necesito algo de informacion al respecto.
Cualquier comentario es bienvenido.


En línea

70N1
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Presionar boton de un programa externo. ( VB. Net )
« Respuesta #1 en: 1 Marzo 2010, 16:45 pm »

Para hacer eso tenes que saber el handle del botón que quieres presionar. Y enviarle con SendMessage "un click"

Acá tienes el código del SendMessage:
Código
  1.    <System.Runtime.InteropServices.DllImport("user32.DLL")> _
  2.    Public Function SendMessage( _
  3.            ByVal hWnd As System.IntPtr, ByVal wMsg As Integer, _
  4.            ByVal wParam As Integer, ByVal lParam As Integer _
  5.            ) As Integer
  6.    End Function
  7.  
  8.    <System.Runtime.InteropServices.DllImport("user32.DLL")> _
  9. Public Function SendMessage( _
  10.        ByVal hWnd As System.IntPtr, ByVal wMsg As Integer, _
  11.        ByVal wParam As Integer, ByVal lParam As String _
  12.        ) As Integer
  13.    End Function

Para buscar el handle del boton puedes instalarte WinID (asi sabes como buscarlo desde la aplicacion)

Seguramente te sirvan todas estas funciones:
Código
  1. <System.Runtime.InteropServices.DllImport("user32.dll", _
  2.    EntryPoint:="FindWindow")> _
  3.    Public Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
  4.    End Function
  5.  
  6.    <System.Runtime.InteropServices.DllImport("user32.dll")> _
  7.    Public Function EnumChildWindows(ByVal hWndParent As System.IntPtr, ByVal lpEnumFunc As EnumWindowsProc, ByVal lParam As Integer) As Boolean
  8.    End Function
  9.  
  10.    Public Function GetChildWindows(ByVal ParentHandle As IntPtr) As IntPtr()
  11.        Dim ChildrenList As New List(Of IntPtr)
  12.        Dim ListHandle As GCHandle = GCHandle.Alloc(ChildrenList)
  13.        Try
  14.            EnumChildWindows(ParentHandle, AddressOf EnumWindow, GCHandle.ToIntPtr(ListHandle))
  15.        Finally
  16.            If ListHandle.IsAllocated Then ListHandle.Free()
  17.        End Try
  18.        Return ChildrenList.ToArray
  19.    End Function
  20.  
  21.    Private Function EnumWindow(ByVal Handle As IntPtr, ByVal Parameter As IntPtr) As Boolean
  22.        Dim ChildrenList As List(Of IntPtr) = GCHandle.FromIntPtr(Parameter).Target
  23.        If ChildrenList Is Nothing Then Throw New Exception("GCHandle Target could not be cast as List(Of IntPtr)")
  24.        ChildrenList.Add(Handle)
  25.        Return True
  26.    End Function
  27.  
  28.    <System.Runtime.InteropServices.DllImport("user32.dll")> _
  29.    Public Sub GetClassName(ByVal hWnd As System.IntPtr, ByVal lpClassName As System.Text.StringBuilder, ByVal nMaxCount As Integer)
  30.        ' Leave function empty    
  31.    End Sub

Lo que no se es cual es la constante a enviar. Quedaría buscar por ahí

Saludos


En línea

70N1


Desconectado Desconectado

Mensajes: 355


Ver Perfil
Re: Presionar boton de un programa externo. ( VB. Net )
« Respuesta #2 en: 1 Marzo 2010, 17:59 pm »

Muchas gracias. Yo me imaginava que era algo de sendmessage o sendkey, aunque con sendmessage es mejor ya que no keda tan chapuza. Voy a trabajar con los codigos que me as proporcionado. muchas gracias.
En línea

70N1
elmaro


Desconectado Desconectado

Mensajes: 301


Unas simples palabras...


Ver Perfil
Re: Presionar boton de un programa externo. ( VB. Net )
« Respuesta #3 en: 1 Marzo 2010, 18:23 pm »

Viendo por ahi creo que esta es la constante


Código
  1. Private Const BM_CLICK = &HF5
En línea

m[a]rkus

Desconectado Desconectado

Mensajes: 64


Si juegas a ser hacker piensa como un hacker.


Ver Perfil WWW
Re: Presionar boton de un programa externo. ( VB. Net )
« Respuesta #4 en: 20 Abril 2010, 00:59 am »

Hola, mira tengo un problema que necesito saber el hwnd de una sub-ventana, o sea ya tome la hwnd de la principal con Findwindows, y ahora con FindwindowsEX en teoria deberia tomar la que quiero, pero al parecer ahí otra ventana mas por medio, entonces necesito listar las ventanas hijas, ahí una API pero no la entiendo, con Spy++ ya eh mirado y no veo ni siquiera el que yo quiero a menos que lo haga con la "mirilla" y con el WINID que dijo sebasneo123 no salen las ventanas hijas, alguna idea ? gracias
En línea

Existen dos maneras de ser feliz en esta vida, una es hacerse el idiota y la otra serlo.

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Encendido sin presionar el botón.
Windows
[D4N93R] 8 7,792 Último mensaje 10 Abril 2011, 18:39 pm
por seba123neo
bath presionar boton
Scripting
asdexiva 1 2,360 Último mensaje 6 Noviembre 2012, 09:46 am
por Eleкtro
Cambiar return de Api usada por un programa externo
Programación Visual Basic
Psyke1 1 1,240 Último mensaje 15 Enero 2013, 18:47 pm
por MCKSys Argentina
Ayuda Java mostrar Secuencia de Imagenes en JPanel al presionar un boton
Java
Nsc-Hack 5 7,063 Último mensaje 19 Junio 2013, 04:39 am
por Nsc-Hack
Agregar un pulsador (o boton externo) a un aparato... pregunta de novato!
Electrónica
cam92 4 4,037 Último mensaje 14 Septiembre 2017, 22:24 pm
por cam92
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines