Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: z3nth10n en 12 Junio 2013, 18:09 pm



Título: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 12 Junio 2013, 18:09 pm
Muy buenas, esto es posible de realizar? :huh:

Un saludo.



Tengo este code, pero no se como hacer que funcione, es más ni se si va a hacer algo :silbar:

Código
  1. WebBrowser1.Document.GetElementById("login-submit").InvokeMember("click")


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: XresH en 12 Junio 2013, 18:19 pm
Se puede si, a través de un For recorre todos los forms y botones de una Web.

Ya sea desde el Webbrowser o de la manera que conectes con ella.

Te recomiendo realizarlo y verificando el valor "Type" (creo que asi es)

Para que te devuelva el Texto o bien el Valor del botón que queres presionar.

Y cuando encuentres el indicado le haces hacer clic pero sin buscar ya que antes realizas un If que si es positivo realiza el clic a dicho objeto.


Saludos.


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 12 Junio 2013, 18:23 pm
Podría hacer un

Código
  1. If WebBrowser1.Document.GetElementById("login-submit").InvokeMember("click") Then
  2.  
  3. 'code
  4.  
  5. End If

Gracias! ;D


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: XresH en 12 Junio 2013, 18:33 pm
Estoy en el trabajo y me ratie para entrar acá  :xD

No tengo nada instalado pero creo que es algo así:


Código:
Dim i As Integer
Dim x As Integer
For x = 0 To 2
    For i = 0 To WebBrowser1.Document.Forms(x).length - 1
        If WebBrowser1.Document.Forms(x)(i).Type = "submit" Then 'submit en general sn los botones xd
           If WebBrowser1.Document.Forms(x)(i).Value = "Ver más" Then 'el texto que contiene
              WebBrowser1.Document.Forms(x)(i).Click() 'si es el que queremos hacemos clic
              Exit Sub
           End If
        End If
    Next i
Next x
End Sub


Es algo que hice a la carrera no se si está bien (a la carrera quiero decir rapidito y con mucho disimulo si me ven se me arma :P)

Bássicamente recorre todos los formularios del WebBrowser y en cada uno de ellos los controles que tiene.

Acordate que tenes que agregar el componente COM desde elegir elementos en el cuadro de herramientas.

AxWebBrowser1 es el nombre del  objeto por defecto creo eso cambialo a tu gusto claro está.

Pienso que ando bien rumbeado probalo y me comentás.

Saludos.


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 12 Junio 2013, 20:32 pm
Me da bastantes errores (solo 4)

A ver, simplemente quiero hacer que salte un msgbox cuando clickes en un boton...  :silbar:


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: XresH en 12 Junio 2013, 20:35 pm
Me da bastantes errores (solo 4)

A ver, simplemente quiero hacer que salte un msgbox cuando clickes en un boton...  :silbar:

Estás seguro que agregaste el componente correspondiente?

Si son 4 son las líneas en la que aparece el nombre del WebBrowser, de seguro te marca esas cuatro.

Revisa bien el post y fijate de que esté todo como te indiqué.

Elegir elementos-->Componentes Com --> Web browser

La referencia en base a la ieframe.dll (creo :P)

Saludos.


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 12 Junio 2013, 20:43 pm
Ehm te refieres a que si metí un webbrowser? A tanto (a tan tonto :laugh:) no llego XD


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: XresH en 12 Junio 2013, 20:47 pm
Hay 2 webbrowser, yo te digo que uses el que es mas fácil de utilizar.

Con que esté agregado no quiere decir que sea el mismo, ya chekie el code y tiene que trabajarte sin error :D

Si quieres crear un msgbox luego del code del clic coloca:


Código:

Msgbox("assdasdsad")

No digo que seas tonto, hay cosas que hay que decir porque no todos pensamos igual, calculo también que ese code lo colocaste en un boton de comando por ejemplo y que cargaste el Webbrowser con alguna Web a través de la propiedad Navigate y luego presionaste el botón con el code que te pasé.

Saludos.


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 12 Junio 2013, 20:55 pm
Ehm pues no me entero xD

A ver he añadido "2 webbrowsers" y luego...

He puesto tu code, pero me sale esto

(http://i.imgur.com/fpGIKR6.png)

Un saludo jefe. :rolleyes:


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: Eleкtro en 12 Junio 2013, 20:56 pm
@IKillNukes
Está claro que con los eventos del WebBrowser no vas a poder, porque no existen eventos para eso, tienes que hacerlo con los eventos del documento, el cual tiene un evento llamado CLICK y sirve para eso...

...Aquí está todo lo que necesitas saber: http://pradeep1210.wordpress.com/2010/03/19/easy-way-to-add-keyboard-and-mouse-events-to-webbrowser-control/

Te pasaría un código de ejemplo, pero te reto a que lo hagas por ti mismo, tienes que handlear el evento click del documento a un sub, y en ese sub lo que debes hacer es comprobar el tipo de elemento que se ha clickado, si es un botón pues lanzas un msgbox.

EDITO: Postea si quieres más tarde el código que lleves hecho al respecto para poder ayudarte.

Saludos!


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: XresH en 12 Junio 2013, 20:58 pm
Estás seleccionando el WebBrowser equivocado.

Por eso los errores, es eso.

Pone el otro desde compnentes com como te indiqué mas abajo :D

EDITO: jaja electro si pensás que el va a entender como hacerlo con lo que pusiste, estás loco.

La idea es hacerlo de la forma que el comprenda como trabaja, y me decis a mi que lo estoy liando... con un simple for busco TODO en un Webbrowser, no veo necesidad de hacer MAS, me parece que no es lo que pretendemos al programar, eficacia... siempre por encima de todo :D






Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 12 Junio 2013, 20:59 pm
Estás liando al pobre chaval xD

El WebBrowser es un componente por defecto, quiero decir que ya está agregado en el Toolbox, no es necesario elegirlo en los componentes ocultos del COM
(Al menos en la IDE del VS2012 que es la que usa Ikillnukes)


Eso he pensado yo... Pero es que no me aclaro xD

Estás seleccionando el WebBrowser equivocado.

Por eso los errores, es eso.

Pone el otro desde compnentes com como te indiqué mas abajo :D






Como otro? LOL

Un saludo.



He estado observando, si le meto un WebBrowser.Click, con que haga clic en cualquier lado del WebBrowser dará para hacer la función no?


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: XresH en 12 Junio 2013, 21:03 pm
en el cuadro de herramientas, clic derecho.. seleccionar elementos o elegir no me acuerdo xD vas a componentes com y buscas Webbrowser....

Te aparece otro.. no te lo digo porque si, es más sencillo que usar que el por defecto, pero si queres complicarte... es tu decisión, no me meto mas.


Saludos.


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 12 Junio 2013, 21:06 pm
Y esto?

http://www.dreamincode.net/forums/topic/169683-advanced-webbrowser-contextmenu/

También tenía esto:

Código
  1. Private Sub WebBrowser1_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
  2.    If MsgBox("You are trying to go to:" & vbCr & e.Url.ToString() & vbCr & "Cancel Navigate?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
  3.        e.Cancel = True
  4.    End If
  5. End Sub

La verdad es que me estoy complicando yo solo...

Podría poner un getelementbyname y poner un name igual para todos los controles que se pudiese detectar...

Ahora si... Cuando seleccione un ModPack tendría que setearse una variable para que cogiese el name de dicho form, no se si me captais ;-)



También podría hacer que con javascript se cambiase el name del form, y hay pondría una condición si se cumple, se empezaría a realizar la función a la que estuviese indexada ese name ;-)


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: Eleкtro en 12 Junio 2013, 21:16 pm
¿Puedes centrarte en lo que te dije?:

Citar
Está claro que con los eventos del WebBrowser no vas a poder
Punto 1: Olvida el CLICK del WebBrowser.

tienes que hacerlo con los eventos del documento, el cual tiene un evento llamado CLICK ...
Punto 2: Bienvenido al evento CLICK del documento.

Citar
todo lo que necesitas saber: http://pradeep1210.wordpress.com/2010/03/19/easy-way-to-add-keyboard-and-mouse-events-to-webbrowser-control/
Punto 3: Mírate el código, leelo, examinalo, fíjate en los eventos disponibles del document y usa el evento click de ese objeto.

Citar
tienes que handlear el evento click del documento a un sub, y en ese sub lo que debes hacer es comprobar el tipo de elemento que se ha clickado, si es un botón pues lanzas un msgbox.
Punto 4: Intenta hacerlo, con la url debería ser más que suficiente, pero bueno, una pista extra:

http://msdn.microsoft.com/en-us/library/eday44cc.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.htmlelement_events.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.activeelement.aspx




Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 12 Junio 2013, 21:19 pm
Al punto 4 es al que más miedo le tengo. xD



Hasta ahora he llegado a:

Código
  1. Public Class frmModPacks_Web
  2.    Private Sub frmModpacks_Web_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  3.  
  4.        Dim prueba As String = Me.WebBrowser1.Document.GetElementById("nombre").GetAttribute("Value")
  5.  
  6.        WebBrowser1.Navigate("http://ikillcraft.a0001.net/modpacks.php")
  7.    End Sub
  8.  
  9.    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
  10.        Dim document As HtmlDocument = WebBrowser1.Document
  11.  
  12.        'Attach Click event handler
  13.        AddHandler document.Body.Click, New HtmlElementEventHandler(AddressOf WebBrowser1_Click)
  14.    End Sub
  15.  
  16.    Private Sub WebBrowser1_Click(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
  17.        MsgBox("Hola")
  18.    End Sub
  19. End Class

Y ya tengo un problema el WebBrowser se carga en blanco :-\



EDITO: El problema está en:

Código
  1.        Dim prueba As String = Me.WebBrowser1.Document.GetElementById("nombre").GetAttribute("Value")

No sé porqué. :-\



DUDA:

Citar
WebBrowser1.Document.GetElementById("login-submit").InvokeMember("click")

Sirve de algo?


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: Eleкtro en 12 Junio 2013, 21:47 pm
Bonito copy/paste,
Sigue investigando el código de la url que te puse, te doy otra pista!:

Código
  1.    Private Sub Document_Clicked(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
  2.        MsgBox(sender.ActiveElement.TagName)
  3.        MsgBox(sender.ActiveElement.Id)
  4.        MsgBox(sender.ActiveElement.Name)
  5.        MsgBox(sender.ActiveElement.OuterText)
  6.    End Sub

PD: Donde el objeto sender es de tipo "HtmlDocument", NO de tipo HtmlElement como está en tu código de arriba.

EDITO:
Código
  1. If sender.ActiveElement.TagName.tolower = "button" then...
  2. If sender.ActiveElement.TagName.tolower = "input" then...


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 12 Junio 2013, 21:51 pm
Copy/paste, anda ya xD

Si lo unico que mas he copipasteado ha sido esto:

Código
  1.    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
  2.        Dim document As HtmlDocument = WebBrowser1.Document
  3.  
  4.        'Attach Click event handler
  5.        AddHandler document.Body.Click, New HtmlElementEventHandler(AddressOf WebBrowser1_Clicked)
  6.    End Sub

A ver...

Tengo esto:

Código
  1.    Private Sub WebBrowser1_Clicked(ByVal sender As Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs)
  2.        MsgBox(sender.ActiveElement.Document.GetElementById("login-submit").InvokeMember("click"))
  3.    End Sub

EDITO:

Entonces, que dejo un HtmlElement en vez de un HtmlDocument? :silbar:



EDITO:

No soy tan pro como tu... Necesito más help >:D
Por no decir que no se que es lo que significan la mitad de las cosas que hay en los codes :-\


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: Eleкtro en 13 Junio 2013, 00:27 am
no se que es lo que significan la mitad de las cosas que hay en los codes :-\

Pues ya tienes tarea de sobra, ¿no?

...En el MSDN tienes lo que significa cada propiedad y método del HtmlDocument y HtmlElement, si no sabes lo que significan o como mínimo no te puedes hacer una idea de lo que significan es porque no quieres.

Yo no soy un Pro, pero lo que no puede ser es que sin saber el puto lenguaje quieras hacer una aplicación de grandes dimensiones sin tener ni idea de como usar el lenguaje de forma básica, y que encima ya tengas media aplicación acabada donde el 90% del código es puro copy/paste del esfuerzo de los demás usuarios como Xresh o yo, y que no sepas que significa nada de lo que te mostramos ni tampoco te intereses por saber que significa, eso es lo peor de todo.

¿Estamos locos o que?, ya basta Ikillnukes, si no quieres aprender pues me parece perfecto, no aprendas, pero entonces tampoco hagas mil preguntas sobre como se hacen las cosas puesto que reálmente no quieres aprender como se hacen las cosas, quieres que te lo den hecho.

Empieza por estudiar los términos básicos de VBNET, los operadores y las cosas básicas, lo que significan las propiedades, los métodos, los eventosd, los data types, aprende a leer los malditos eventos y propiedades de los objetos y sus descripciones, que no es tán dificil joder, un miserable click te cuesta leer las descripciones, en fín aprende un poco a manejar el lenguaje por ti mismo y luego ya cuando sepas símplemente lo básico entonces puedes probar a desarrollar tu primera aplicación, una aplicaicón que la hayas hecho tú, con o sin ayuda de usuarios como nosotros, pero donde la mayor parte del código séa tuyo, una aplicación realista y no este tipo de aplicación que "estás haciendo tú"...

...Se te escapa de las manos todo lo qe te comentamos y lo que te explicamos, no estás capacitado para hacer este "launcher" aunque te proporcionemos ayuda, porque es demasiado para tu nivel de conocimientos del lenguaje, así que te sugiero que PARES, que recapacites, que empieces a aprender el maldito lenguaje desde cero, cosa que todavía no te ha dado la gana hacer, y ya para entonces cuanto estés un poco más instruido podremos ayudarte mejor.

Saludos.



EDITO:

En fín aqui cada uno empieza sin tener ni p**a idea del lenguaje, todos empezamos sin saber, pero todos los que reálmente queremos aprender nos dignamos a investigar lo que significa cada cosa.

Para serte sincero... es mi opinión, y solo mi opinión, pero yo preferiría 1.000 veces que un usuario llenase el foro de preguntas de este tipo:

"¿Me explican este código entero?", "¿Me explican que significa esto?", "¿Me explican para que sirve esto otro?", "¿Me explican como puedo mejorar este código?".

Porque al menos el tipo de pregunta denota que la persona está interesada en aprender algo.

...En cambio tu lo que haces es esperar que otras personas como por ejemplo yo te saquemos de todos los apuros, de todos. Los demás invertimos tiempo, te ayudamos (quiero decir, te lo damos hecho), pero tu sigues sin querer aprender y abusando, porque pedir es fácil.

...Si no sabes lo que significa alguna parte de un código (Como has comentado en tu último post) siempre puedes formular tu pregunta en el foro para que te expliquemos lo que significa eso que no sepas, y de esa manera APRENDAS.


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: SγиtαxEяяoя en 13 Junio 2013, 00:46 am
Crei que nunca llegaria el dia en que alguien se ponga enserio y le dijera sus verdades, no soy un experto en .NET (quiero serlo) pero trato de hacer lo posible por entender las propiedades, no solo copiar y pegar..  :-[

Como dice Xresh Entender el Codigo es lo importante

no abusar de la ayuda que te esta dando EleKtro o Xresh

Valla, y creia que tenias las capacidades de entender las cosas  :silbar: veo que me equivoque...  :-\ :-\ :(

Ahora se cambiaron los papeles... y pensar que yo era el que me sentia una molestia por preguntar :huh: :huh: ;)


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: Eleкtro en 13 Junio 2013, 01:03 am
Perdón por este OFFTOPIC que voy a hacer ahora, espero que no moleste a ninguna persona de las que voy a nombrar, pero no me gusta callarme nada

Ikillnukes, un buen ejemplo que puedes tomar como referencia es a SγиtαxEяяoя , incluso puedes motivarte a aprender VBNET (Aprenderlo de verdad, no lo que estás haciendo) como si fuese un reto para subir el nivel de conocimientos de la misma manera que lo hace SyntaxError poco a poco cada día, igual que lo hago yo, y al igual que lo hacemos todos los demás.

Pues según lo que yo he podido ver, SyntaxError se inició en VBNET mucho después de lo que lo hicieras tu, porque recuerdo que tu te iniciaste hace varios varios meses, pero  lo dejaste por un tiempo LARGO y luego volviste a retomar las riendas y aquí estás de nuevo,
y por si fuera poco cuando tu te iniciaste en VBNET recibiste mucha más ayuda que SyntaxError (Al menos en este foro, no conozco la vida de SyntaxError más hallá xD), ya que la información y los códigos se te ofrecen en bandeja cuando lo pides como si fueran caramelos ...SyntaxError ha hecho un par de posts, tu has hecho 100, y a pesar de todo eso no sabes "nada" IkillNukes, en varios meses no eres capaz de manejar lo más básico de VBNET, pues no intento desmotivarte, más bien al contrario, va siendo hora de que te plantees en serio empezar a aprender el lenguaje de verdad si quieres hacer una aplicación, porque nadie te va a hacer una aplicación a menos que pagues dinero por que te la hagan.

...Y ya lo siento si molesta, no me gusta comparar a personas, pero es que no sé que más hacer ya.

Reconozco que yo hasta hace poco pensaba que vosotros dos erais iguales (lo siento mucho SyntaxError) en el sentido de que pedirlo todo hecho era vuestra única solución para hacer las cosas, pero estaba muy equivocado, pues es algo que se nota en las personas, y en SyntaxError se nota que si que desea aprender,

y lo cierto es que... ¿Quien no ha copiado código ajeno?, por ejemplo ¿Quien no ha copiado el código de una Class donde se usen APIS con sus estructuras ya escritas y sus constantes para no tener que hacerlo nosotros?...

...Pero una cosa es copiar por necesidad un código que sabes que va a funcionar sin hacerle modificaciones, y otra cosa muy distinta es que copiar códigos séa lo único que sepas hacer, y no es sarcasmo IKillNukes, te lo digo diréctamente porque quiero que sepas que eso es lo que pienso y sabes perféctamente que es cierto.

Ya no tengo nada más que decir,
Espero que a los moderadores no le haya molestado tampoco, de lo contrario, lo siento.

Un saludo!


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: 43H4FH44H45H4CH49H56H45H en 13 Junio 2013, 04:54 am
Pues ya tienes tarea de sobra, ¿no?

...En el MSDN tienes lo que significa cada propiedad y método del HtmlDocument y HtmlElement, si no sabes lo que significan o como mínimo no te puedes hacer una idea de lo que significan es porque no quieres.

Yo no soy un Pro, pero lo que no puede ser es que sin saber el puto lenguaje quieras hacer una aplicación de grandes dimensiones sin tener ni idea de como usar el lenguaje de forma básica, y que encima ya tengas media aplicación acabada donde el 90% del código es puro copy/paste del esfuerzo de los demás usuarios como Xresh o yo, y que no sepas que significa nada de lo que te mostramos ni tampoco te intereses por saber que significa, eso es lo peor de todo.

¿Estamos locos o que?, ya basta Ikillnukes, si no quieres aprender pues me parece perfecto, no aprendas, pero entonces tampoco hagas mil preguntas sobre como se hacen las cosas puesto que reálmente no quieres aprender como se hacen las cosas, quieres que te lo den hecho.

Empieza por estudiar los términos básicos de VBNET, los operadores y las cosas básicas, lo que significan las propiedades, los métodos, los eventosd, los data types, aprende a leer los malditos eventos y propiedades de los objetos y sus descripciones, que no es tán dificil joder, un miserable click te cuesta leer las descripciones, en fín aprende un poco a manejar el lenguaje por ti mismo y luego ya cuando sepas símplemente lo básico entonces puedes probar a desarrollar tu primera aplicación, una aplicaicón que la hayas hecho tú, con o sin ayuda de usuarios como nosotros, pero donde la mayor parte del código séa tuyo, una aplicación realista y no este tipo de aplicación que "estás haciendo tú"...

...Se te escapa de las manos todo lo qe te comentamos y lo que te explicamos, no estás capacitado para hacer este "launcher" aunque te proporcionemos ayuda, porque es demasiado para tu nivel de conocimientos del lenguaje, así que te sugiero que PARES, que recapacites, que empieces a aprender el maldito lenguaje desde cero, cosa que todavía no te ha dado la gana hacer, y ya para entonces cuanto estés un poco más instruido podremos ayudarte mejor.

Saludos.



EDITO:

En fín aqui cada uno empieza sin tener ni p**a idea del lenguaje, todos empezamos sin saber, pero todos los que reálmente queremos aprender nos dignamos a investigar lo que significa cada cosa.

Para serte sincero... es mi opinión, y solo mi opinión, pero yo preferiría 1.000 veces que un usuario llenase el foro de preguntas de este tipo:

"¿Me explican este código entero?", "¿Me explican que significa esto?", "¿Me explican para que sirve esto otro?", "¿Me explican como puedo mejorar este código?".

Porque al menos el tipo de pregunta denota que la persona está interesada en aprender algo.

...En cambio tu lo que haces es esperar que otras personas como por ejemplo yo te saquemos de todos los apuros, de todos. Los demás invertimos tiempo, te ayudamos (quiero decir, te lo damos hecho), pero tu sigues sin querer aprender y abusando, porque pedir es fácil.

...Si no sabes lo que significa alguna parte de un código (Como has comentado en tu último post) siempre puedes formular tu pregunta en el foro para que te expliquemos lo que significa eso que no sepas, y de esa manera APRENDAS.

 ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)

Muy bueno, espero que con esto ya no se hagan nuevos temas pidiendo (mendigando) codigo, ya fue mucho abuso   :-\


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: SγиtαxEяяoя en 13 Junio 2013, 05:09 am
;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)

Muy bueno, espero que con esto ya no se hagan nuevos temas pidiendo (mendigando) codigo, ya fue mucho abuso   :-\

Al ver tu nombre, crei que era un usuario spammeando xD
algo inusual tu nombre... pero ¿que significa?  :huh:


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 13 Junio 2013, 07:49 am
Bueno vale, pongo de mi parte, ayer iba a preguntar que significaba tolower....

En:

Código
  1. If sender.ActiveElement.TagName.tolower = "button" then...

Yo lo que hago para aprender es dejar en un TXT todos los codes que me vais diciendo y luego si lo tengo que volver a hacer lo escribo yo a mano y si no se como se sigue miro el code, miro a ver por donde está el error o en que me he equivocado

Parece que no tengo ganas de aprender ya lo se, pero es que, tengo examenes y cosas que hacer, asi que en verano me voy a poner a aprender, Java, C++ y .NET y yastá. No me mosquees, si no presento interes es porque estoy ocupadisimo como para ponerme a hacer yo mismo todo el code, investigar y estudiarme el code.
Solo tengo para investigar un poco y gitanear code...
Y el proyecto tengo hasta el 5 de julio. Lo que si podria hacer es acabar este maldito code y ponerme a hacer la web, puesto que php y mysql no es muy dificil y html se hasta yo que se xD

Asi que... He aquí mi intento de code:

Código
  1.    Private Sub WebBrowser1_Clicked(ByVal sender As Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs)
  2.        If sender.ActiveElement.TagName.tolower = "button" Then
  3.            MsgBox("Hola")
  4.        End If
  5.        If sender.ActiveElement.TagName.tolower = "input" Then
  6.            MsgBox("Hola")
  7.        End If
  8.        'MsgBox(sender.ActiveElement.Document.GetElementById("login-submit").InvokeMember("click"))
  9.    End Sub



Syntaxerror, con prisas y sin tiempo, nada se puede pensar. Es decir, yo razono no cuando programo, si no cuando, me voy y me doy un paseo y me pongo a pensar en lo que tengo hecho de code, digo porque no va esto y porque no va otro (vamos con la mente despejada), y si no estoy programando estoy haciendo tareas de clase o estudiando.. Asi que, quiero avanzar un poco aunque sea hasta el 22 de junio que será cuando acabe todo, porque cuando termine no me va a dar tiempo a nada >:D



Un saludo y he aquí mis razones por las que no puedo o segun otro no tengo ganas de aprender. :-[



Yo creo que yo soy así:

Meses lectivos ===> A gitanear code lo máximo posible
Meses de vacaciones ==> Me relajo y me pongo a aprender y hacer cosas

Es que tampoco recuerdo muy bien el verano pasado... Pero creo que tambiñen pedia mucho code hecho, no?

Joer, pues si que me voy a tener que poner enserio.
Pero claro cuando empiece el verano.

Solo pido que me deis algun que otro code, puesto que lo que estoy pidiendo por ahora es bastante chungo. Seguramente me tengais que hacer 2 o 3 codes más. Y lo demás me voya poner yo enserio a hacer, a ver si hago algo, y si no se hacerlo, pues pido ayuda, como hace un usuario normal, no como yo que empiezo un post antes de hacer nada.



Si ya lo sé, soy de lo peor que puede haber en este foro, si lo puede reconocer Elektro, Novlucker, Dryv, si ya lo sé que soy un germen del post giateno de code xD

Pero es que no tengo TIEMPORL,  vosotros lo sabréis que habeis pasado por esta etapa de vuestra vida, que todo es una p**a *****, y que no teneis tiempo para nada que os guste. :xD



No me molesto, es más te doy la razón, porque es que la llevas.
Lo que no quiero es que me dejes de juntar por la simple razón de que gitanee mucho code. ;) ;)



Un saludo y hasta aquí mis reflexiones. :)


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: SγиtαxEяяoя en 13 Junio 2013, 08:41 am

Parece que no tengo ganas de aprender ya lo se, pero es que, tengo examenes y cosas que hacer, asi que en verano me voy a poner a aprender, Java, C++ y .NET y yastá.

Porque mas bien  te centras en un solo lenguaje, cuando estes en lo basico puedes ver otros.. oye no te creas el sabelotodo, creo que no puedeas manejar todos esos lenguajes a ojos cerrados y si no tienes tiempo para programar solo porque tengas un examen o estes paseando (Razonando) NO pongas a otros hacer tu trabajo.
Con una escusa y un xD no solucionas NADA



Citar
si no presento interes es porque estoy ocupadisimo como para ponerme a hacer yo mismo todo el code

Y que esperas.. ¿Que te lo hagan?
Todos alguna vez nos basamos en el Copy & Paste y ver algunos ejemplos, no digo que sea el mejor en programacion.. solo digo lo que se ve en este post y lo que te han dicho  :-X



Citar
Y el proyecto tengo hasta el 5 de julio. Lo que si podria hacer es acabar este maldito code


Ya les dijistes a los que te estan ayudando para que es este proyecto ¿Ellos tienen su concentimiento?
Cabe mencionar que este "Launcher" es para el concurso, segun lei tus entradas es mas que obvio que quieres poner este proyecto a concursar



Citar
Syntaxerror, con prisas y sin tiempo, nada se puede pensar. Es decir, yo razono no cuando programo, si no cuando, me voy y me doy un paseo y me pongo a pensar en lo que tengo hecho de code, digo porque no va esto y porque no va otro (vamos con la mente despejada), y si no estoy programando estoy haciendo tareas de clase o estudiando.. Asi que, quiero avanzar un poco aunque sea hasta el 22 de junio que será cuando acabe todo, porque cuando termine no me va a dar tiempo a nada >:D

No veo razon y motivo por el cual me dices eso ami, veo que para mi no fue tal critica..



Citar
Pero es que no tengo TIEMPORL,  vosotros lo sabréis que habeis pasado por esta etapa de vuestra vida, que todo es una p**a *****, y que no teneis tiempo para nada que os guste.

Y si ha otros usuarios les gusta otra cosa, tu entiendes que tu NO dispones de su tiempo



Citar
Solo pido que me deis algun que otro code, puesto que lo que estoy pidiendo por ahora es bastante chungo. Seguramente me tengais que hacer 2 o 3 codes más. Y lo demás me voya poner yo enserio a hacer, a ver si hago algo, y si no se hacerlo, pues pido ayuda, como hace un usuario normal, no como yo que empiezo un post antes de hacer nada.

A pesar de que dijeron todo eso como que no te llego el mensaje... eso te pasa por no prestar atencion y no leer

Oye veo grave esta situacion, jamas habia estado presente en un post como este y que sacaran todos los trapos al sol 


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 13 Junio 2013, 15:23 pm
Bueno a todo esto, voy a responder una cosa

Me he metido en terreno muy difícil, lo recnonozco, y para salir voy a pedir nada más 2 o 3 codes. Y lo demás van a ser dudas que afloren cuando lleve ya algunos días metido en un problema del que no pueda salir.

Es más, este verano, haré lo que pueda, no voy a quedarme sin aprender nada, pero tampoco voy a dejar de lago mis estudios de programación.
Es decir, que puede que aprenda a usar algunas cosas de Java, de C++ y de VB.NET, bueno, con VB.NET perfeccionaré. (No digo que me aprenda todo de golpe, si no pues cuando de aburra de un lenguaje pues empiezo con otro, ya se que es la peor forma de aprender.)

Así que todos sin rencores, y sobre esta duda, pues tengo a parte de esta otra más que no se si va a resolver cuando termine con el code.
Voy a poner de mi parte y voy a intentar enterarme de todo de lo que me decis, y voy a intentar enterarme de los codes que me mandéis, y voy a mirarme las 3 urls, aunque creo que son dos.

Entonces... Quedamos como amigos y este malentendido lo resolvemos por lo sano?
Si es así, yo me rindo y dejo que me enseñes el code que me falta, Elektro.
Muchas gracias, :) (Por lo menos he intentado algo, pero como véis no he hecho nada de mi cuenta, todo el code lo tenia metido en pistas. No se nada de VB.NET sobre las HTLEntities y todo eso... Lo reconozco que pido mucho) :-[

Y perdón por todas las molestias que no estoy causando solo os pido que me entendáis, como yo a vosotros os entiendo y os doy la razón. :)



No se yo. Hombre, mucho consentimiento no tendré y menos si la cago diciendo que no me entero, Elektro es mi amigo, así que, ya haré favorcillos como ... Bueno mejor me callo, sobré los demás, pues le daré algo a cambio, como por ejemplo mis diseños de Photoshop, a XresH ya le ayudé con mis botones, pero no pude hacer nada. :P
Lo voy a intentar esta tarde y le daré una sorpresa. :P



Citar
Y si ha otros usuarios les gusta otra cosa, tu entiendes que tu NO dispones de su tiempo

Por dios, que mente más cerrada, los usuarios hacen lo que quiere, si quieren me ayudan y si no me mandan a tomar por culo Fanta, si me ayudan es por gusto, no por obligación. :¬¬



El mensaje no me habrá llegado por que solo estoy pidiendo ayuda.



Citar
Oye veo grave esta situacion, jamas habia estado presente en un post como este y que sacaran todos los trapos al sol

:(


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: Eleкtro en 13 Junio 2013, 17:12 pm
voy a pedir nada más 2 o 3 codes
Con dos cojones IKillNukes, dí que sí...

puede que aprenda a usar algunas cosas de Java, de C++ y de VB.NET

...cuando me aburra de un lenguaje pues empiezo con otro

...

Entonces... Quedamos como amigos y este malentendido lo resolvemos por lo sano?
Si es así, yo me rindo y dejo que me enseñes el code que me falta, Elektro.

Yo soy amigo de todo el mundo, no voy a odiar a alguien porque pida cosas, ni me vas a caer mal, pero tampoco voy a dejar que se abuse de la bondad de los demás como lo estás haciendo, cada día vas un paso mas lejos pidiendo todo hecho sin escrúpulos, las cosas son como son, incluso tu lo reconoces, no buscas aprender.

El colmo de todo esto según ha comentado SyntaxError es que estuvieras dispuesto a presentar esta aplicación en un concurso (EHN-DEV) (vale, con el consentimiento de los que te hemos hecho todo el código), pero es que es increible, porque si te preguntasen cualquier cosa de tu própia aplicación en el concurso no ibas a saber que decir, porque no sabes lo que hace cada cosa de los códigos.

...con eso último das la impresión de que lo único que buscas es que te lo hagan todo y decir que es tuyo para ganar algo, como te dijo NovLucker en una ocasión, y eso no creo que a nadie le guste, ya lo estás viendo,
pues yo lo siento pero no estoy dispuesto a aportar ese code que necesitas.

Aún así, lee bien IKillNukes, porque te lo he dicho dos veces, aquí tienes lo que necesitas para hacer ese code:


http://pradeep1210.wordpress.com/2010/03/19/easy-way-to-add-keyboard-and-mouse-events-to-webbrowser-control/

Código
  1. If sender.ActiveElement.TagName.tolower = "button" then...
  2. If sender.ActiveElement.TagName.tolower = "input" then...

Es muy sencillo de hacer, si se te complica lo único que tienes que hacer es INTENTARLO, y preguntar porque no va y lo que te falta, hacer una pregunta decente macho, y con gusto estoy seguro de que te ayudare(mos) cuando demuestres que intentas codear algo por ti mismo sin usar copy/paste.

No pidas codes hechos, pide ayuda para hacerlos, y te irá mucho mejor. ¿Tán dificil es hacer eso IKillNukes?

Saludos!


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: SγиtαxEяяoя en 13 Junio 2013, 17:40 pm
Citar
Elektro es mi amigo, así que, ya haré favorcillos como ...
¿Musica? Cualquiera que tenga acceso a internet (Youtube) puede buscar musica

Citar
Por dios, que mente más cerrada
Oye si en serio te hubiese dicho todo lo que tenia por decir no hubiese modificado nada, pero a ultimo momento me arrepenti.

Citar
El mensaje no me habrá llegado por que solo estoy pidiendo ayuda.
"El mensaje" es lo que aprendistes de este post, como dice electro NO ABUSAR DE LA BONDAD, ¿Entonces que aprendistes? que te den solo esos 2 o 3 codes y ya...


EDITO: Olvidemos ya todo este asunto que esto no va para ningun lado :P
aqui entra un mod y no sabe lo que esta pasando y BAN para todos por tantos sermones y demas post que no se como catalogarlos :laugh: :laugh:


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 13 Junio 2013, 18:34 pm
Ya se que el dialogo no es mi punto fuerte, pero tampoco quiero engañar a nadie. Así que, yo digo lo que creo que voy a hacer aunque bueno, luego haga otra cosa. :P

Citar
¿Musica? Cualquiera que tenga acceso a internet (Youtube) puede buscar musica

Es otro favor. :¬¬

Citar
Oye si en serio te hubiese dicho todo lo que tenia por decir no hubiese modificado nada, pero a ultimo momento me arrepenti.

Bueno vale, lo siento, sin rencores, parece que desde que te dije lo que te dije, bueno, no digo nada más... :P

Citar
"El mensaje" es lo que aprendistes de este post, como dice electro NO ABUSAR DE LA BONDAD, ¿Entonces que aprendistes? que te den solo esos 2 o 3 codes y ya...

Tanto tu como Elektro no me habéis entendido, bueno me habéis malinterpretado, ya que lo que yo ppienso no lo podñeis saber. Solo tenía pensado poner la duda, cuando estuviese al borde de la paraplexia, tampoco tanto, pero bueno. xD Ya me entendéis, que yo lo intentaría un poco y si veo que no, pues nada pido ayuda, como seharía de una forma civilizada, pero como sabéis no estoy muy poco dotado de VB.NET y estoy ocupado con otras cosas, por mucho que investigue no me voy a enterar de mucho, puesto que estoy pensando en mis otras cosas y quiero acabar cuanto antes para empezar con otra cosa. :P Por eso digo que al ser esto un poco comlicado, si no dispongo tiempo parainvestigar, asimilar y comprender, es normla que pida code hecho y por tanto que abuse de vuestra bondad.

Ya sabéis que si queréis que os haga un favor, decidmelo coño, y abusad de mi si queréis por todo lo que estoy haciendo. :P

Citar
cuando me aburra de un lenguaje pues empiezo con otro

Esto creo que sobraba, pero como he dicho más arriba, no se o que voy a hacer en un futuro, puede que a lo mejor... Pues no se, me ponga a terminar de aprender VB.NET y no toque los demás lenguajes o viceversa. NO SE SAEEE xD

Citar
Olvidemos ya todo este asunto que esto no va para ningun lado :P
aqui entra un mod y no sabe lo que esta pasando y BAN para todos por tantos sermones y demas post que no se como catalogarlos :laugh: :laugh:

Tampoco es para que nos baneen :P Un moderador es moderador por algo, piensalo. :P



Al lio, vamos a ver si soy un cabezón, y ya lo he probado como lo he probado que ha sido ya directamente

Código
  1.       Private Sub WebBrowser1_Clicked(ByVal sender As Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs)
  2.           If sender.ActiveElement.TagName.tolower = "button" Then
  3.               MsgBox("Hola")
  4.           End If
  5.           If sender.ActiveElement.TagName.tolower = "input" Then
  6.               MsgBox("Hola")
  7.           End If
  8.           'MsgBox(sender.ActiveElement.Document.GetElementById("login-submit").InvokeMember("click"))
  9.       End Sub

Ya se que tengo los huevos cuadrados xD Pero coño pienso que así ya está todo terminado xD

Desués del Then dce toda la vida se dice la función a realizar, no? xD Si soy un poco burro. xD

y sobre no se que de las HtmlDocument y HtmlElements no me quedo muy claro lo que hay que hacer. :P

Un saludo. ;)
PD: Y sin rencores de abusos, abusad de mi también que pa eso estoy. :P No sus cabreéis, Epale! Auuu xD


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: Eleкtro en 13 Junio 2013, 19:16 pm
Desués del Then dce toda la vida se dice la función a realizar, no?

Sí.

Aunque yo declararía el objeto del sender afuera de los Subs, o haria un TryCast dentro de ese Sub que muestras para que pudieras "manejar" y ver fácilmente en el IntelliSense todos los métodos/propiedades del objeto Sender, para que no vayas preguntando mucho sobre eso en el futuro xD.

Código
  1. Dim document As HtmlDocument = TryCast(sender, HtmlDocument)

EDITO:

Código
  1.    Private Sub Document_Clic(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
  2.  
  3.        Dim document As HtmlDocument = TryCast(sender, HtmlDocument)
  4.  
  5.        Select Case document.ActiveElement.TagName.ToLower
  6.            Case "button" : MsgBox("apretaste un button")
  7.            Case "input" : MsgBox("apretaste un input")
  8.            Case Else
  9.        End Select
  10.  
  11.    End Sub



Tampoco es para que nos baneen :P Un moderador es moderador por algo, piensalo. :P
Para ser sincero yo creo que NovLucker ya pasa de leer tus post (No me extraña, es que cansa siempre ver lo mismo!) xD

Sobre lo del baneo...se banean a los Trolls, y nosotros (los "implicados") hemos dicho lo que pensamos siempre con respeto, y además es por tu bien, IKillNukes, no gustan la gente que lo pide todo hecho siempre.


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: z3nth10n en 13 Junio 2013, 21:20 pm
Pues no me va :(

Código:
    Private Sub frmModpacks_Web_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        'Dim prueba As String = Me.WebBrowser1.Document.GetElementById("nombre").GetAttribute("Value")

        WebBrowser1.Navigate("http://ikillcraft.a0001.net/modpacks.php")
    End Sub

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        Dim document As HtmlDocument = WebBrowser1.Document

        'Attach Click event handler
        AddHandler document.Body.Click, New HtmlElementEventHandler(AddressOf WebBrowser1_Clicked)
    End Sub   

Private Sub WebBrowser1_Clicked(ByVal sender As Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs)
        Dim document As HtmlDocument = TryCast(sender, HtmlDocument)

        Select Case document.ActiveElement.TagName.ToLower
            Case "button" : MsgBox("apretaste un button")
            Case "input" : MsgBox("apretaste un input")
            Case Else
        End Select
    End Sub

Un saludo y gracias por ayudar :)


Título: Re: Realizar función al hacer click en un input button de un WebBrowser?
Publicado por: Eleкtro en 13 Junio 2013, 21:25 pm
El fallo lo tienes aquí:

Código
  1. AddHandler document.Body.Click, New HtmlElementEventHandler(AddressOf WebBrowser1_Clicked)

Te vuelvo a citar lo que dije comentarios atrás:

PD: el objeto sender es de tipo "HtmlDocument", NO de tipo HtmlElement como está en tu código de arriba.

En resumen, pasa el puntero de tu mouse sobre "Body", y lee lo que pone, lee, lee y comprende, y luego lo modificas...