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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  CONSULTA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: CONSULTA  (Leído 1,992 veces)
matti

Desconectado Desconectado

Mensajes: 8


Ver Perfil
CONSULTA
« en: 22 Noviembre 2015, 13:29 pm »

Que tal, quisiera utilizar un método similar al qué dispone javascript  (addeventlistener) pero en c# utilizando webbrowser es decir necesito generar de alguna manera mediante un metodo o evento algo similar a lo que genera la funcion de javascript addeventlistener("submit",mifuncion()); para poder ejecutar mi codigo luego de que se genere un submit en la web en la que estoy. no me sirven eventos como DocumentCompleted. alguna sugerencia ? saludos. :rolleyes:


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.806



Ver Perfil
Re: CONSULTA
« Respuesta #1 en: 23 Noviembre 2015, 12:49 pm »

necesito generar de alguna manera mediante un metodo o evento algo similar a lo que genera la funcion de javascript addeventlistener("submit",mifuncion()); para poder ejecutar mi codigo luego de que se genere un submit en la web en la que estoy

Interesante pregunta, se me ocurren varias maneras:

La primera y más tediosa sería utilizar la interfáz IHTMLFormElement de la indocumentada API MSHTML y asignarle la propiedad onsubmit, la cual imagino que aceptará un delegado a un método, ya que no encontré información alguna sobre esto en la MSDN y no inspeccioné más a fondo. Estuve tratando de castear un Web-Form (HtmlElement) sin éxito a dicha interáz, así que desistí, pero teoricamente puedes hacer de todo.

La segunda manera sería inyectar tu propio código escrito en javascript en el documento html, pero como javascript no es lo mio ni lo intenté. Tienes cientos de ejemplos en google sobre como inyectar JS de manera administrada en un HtmlElement.

La tercera y exitosa manera que hallé, fue investigando sobre los métodos de la class HtmlElement, encontré el método AttachEventHandler, que parece hacer exactamente lo que necesitas:




Un ejemplo que hice con el form de login del foro:

Código
  1. Public Class Form1 : Inherits Form
  2.  
  3.    ReadOnly url As String = "http://foro.elhacker.net/login.html/"
  4.  
  5.    Private Sub Form1_Shown() Handles MyBase.Shown
  6.  
  7.        With Me.WebBrowser1
  8.            .ScriptErrorsSuppressed = True
  9.            .Navigate(Me.url)
  10.        End With
  11.  
  12.    End Sub
  13.  
  14.    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs) _
  15.    Handles WebBrowser1.DocumentCompleted
  16.  
  17.        If (e.Url.AbsoluteUri = Me.url) Then
  18.  
  19.            Dim wb As WebBrowser = DirectCast(sender, WebBrowser)
  20.            Dim el As HtmlElement = wb.Document.Forms(elementId:="frmLogin")
  21.  
  22.            If (el IsNot Nothing) Then
  23.                el.AttachEventHandler("onsubmit", New EventHandler(AddressOf Me.FrmLogin_OnSubmit))
  24.  
  25.            Else
  26.                Throw New Exception(message:="Element not found.")
  27.  
  28.            End If
  29.  
  30.        End If
  31.  
  32.    End Sub
  33.  
  34.    Private Sub FrmLogin_OnSubmit(ByVal sender As Object, ByVal e As EventArgs)
  35.  
  36.        MessageBox.Show("Form submitted.", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
  37.  
  38.    End Sub
  39.  
  40. End Class

Saludos


« Última modificación: 23 Noviembre 2015, 12:56 pm por Eleкtro » En línea

matti

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: CONSULTA
« Respuesta #2 en: 26 Noviembre 2015, 21:41 pm »

Sí justo  estaba implementando ese metodo también y me funciono . gracias por la respuesta
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
consulta sos
Diseño Gráfico
Dannysoft 1 2,762 Último mensaje 31 Agosto 2004, 08:13 am
por e S c u r S o ...
Consulta; Necesito armar una consulta para saber si una fecha ha caido dentro...
Bases de Datos
astinx 6 6,000 Último mensaje 23 Diciembre 2011, 20:34 pm
por astinx
¿Consulta sobre C + MySQL, traspaso del resultado de una consulta MySQL a C?
Programación C/C++
GisiNA 2 3,692 Último mensaje 8 Abril 2014, 16:00 pm
por GisiNA
utilizar valor de consulta en otra consulta
PHP
demonstrator 0 1,845 Último mensaje 12 Septiembre 2014, 02:59 am
por demonstrator
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines