Foros del Web » Programación para mayores de 30 ;) » .NET »

Interactuar con Web

Estas en el tema de Interactuar con Web en el foro de .NET en Foros del Web. Hola quisiera saber como hacer para que toque un botón denominado "Button1" se clickee un botón específico de web abierta en un control WebBrowser. En ...
  #1 (permalink)  
Antiguo 16/05/2009, 21:17
 
Fecha de Ingreso: marzo-2009
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Sonrisa Interactuar con Web

Hola quisiera saber como hacer para que toque un botón denominado "Button1" se clickee un botón específico de web abierta en un control WebBrowser.

En VisualBasic 2008 .NET

PD: Muy lindo trabajo con la web.
  #2 (permalink)  
Antiguo 17/05/2009, 00:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Interactuar con Web

Tienes que sobrecargar el prototipo del objeto Button dentro del HTML cargado en el control y usar los metodos de la mshml.dll, que te permiten "dialogar" con los objetos que estén en él.
Esto te dará una idea:
Código vb:
Ver original
  1. Dim myDoc As HTMLDocumentClass = WebMap.Document
  2. myDoc.getElementById("Button1").setAttribute("value", valoritem)
myDoc es una referencia que te permite acceder al documento cargado.
getElementById te permite acceder a un objeto por su ID.

Es muy probable que debas programar estas funcionalidades en javascript. Yo no las he probado aún con ASP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/05/2009, 19:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Interactuar con Web

La verdad que no entendi.
Pero gracias igual.

Saludos.
  #4 (permalink)  
Antiguo 18/05/2009, 05:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Interactuar con Web

Interactuar con un formulario en una página HTM cargada en un control WebBrowser implica invocar los métodos y funciones de los objetos reales que están en esa página: botones, campos de texto, objetos de mapa, mapas de bits, tablas, etc. Es decir objetos que se pueden manipular visualmente en un webform.
Pero el caso es que cuando quieres hacer algo con los que contienen, o poner o sacar datos de ellos desde afuera del webform, por ejemplo, usando una aplicación basada en WindowsForms, muchas veces esos métodos no existen sino que los programas como scripts (ASP o Javascript)
En estos casos, las soluciones que tienes son:
1. Invocar los métodos que realmente existen, como es el caso de Value para los textobox.
2. Agregarle un método a la clase de ese objeto en ese html, para lo cual debes incluir en el prototipo de la clase, en el script, algo como esto (está en JavaScript):
Código javascript:
Ver original
  1. GMap2.prototype.cargar = function()
  2.                 {
  3.                 coder=false;
  4.                 var contenido = document.getElementById("geoposiciones").value;
  5.                 var lineas = new Array();
  6.                 var columnas = new Array();
  7.                 var lat;
  8.                 var lng;
  9.                 lineas = contenido.split("\n");
  10.                 for(k = 0; k < lineas.length;k++)
  11.                     {
  12.                     columnas = lineas[k].split(",");
  13.                     lat = parseFloat(columnas[1]);
  14.                     lng = parseFloat(columnas[0]);
  15.                     var punto = new GPoint(lat,lng);
  16.                     dibujar(punto);
  17.                     }
  18.                 coder=true;
  19.                 }
  20.  
  21.         GMap2.prototype.limpiar = function()
  22.                 {
  23.                 map.clearOverlays();
  24.                 markers = new Array();
  25.                 polyPoints = new Array();
  26.                 }
Estas dos funciones apuntan a un objeto mapa de google (GMap2), para agregarle una función para agregar un conjunto de coordenadas, y otro para eliminar todo lo que haya dibujado (son completamente funcionales).
A eso me refiero con que debes sobrecargar la clase, es decir, agregar un método en forma dinámica, para un uso específico.

Como ejemplo, este es el uso del segundo método en un botón:
Código vb.net:
Ver original
  1. Private Sub BtnBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBorrar.Click
  2.         Dim myDoc As HTMLDocumentClass = WebMap.Document
  3.         myDoc.parentWindow.execScript("map.limpiar();", "JavaScript")
  4.     End Sub

¿Ahora se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/05/2009, 13:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Interactuar con Web

La verdad no.
Tengo muy poca programacion, Si podes decirmelo en un lenguaje que entienda te agradeceria :).
Saludos
  #6 (permalink)  
Antiguo 23/05/2009, 19:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Interactuar con Web

¿Conoces algo de programación orientada a objetos (objetos, clases, métodos, atributos, etc)? ¿Algo de programación en C#, C#.Net o VB.Net?
¿Qué lenguaje de programación conoces y con qué has estado trabajando?
Pregunto para poder ubicarme en un marco de referencia común a ambos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 25/05/2009, 16:22
 
Fecha de Ingreso: marzo-2009
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Interactuar con Web

De clases y objetos muy poco. Use el vb6, pero actualmente uso el .net y el codigo lo quiero para vb .net
  #8 (permalink)  
Antiguo 25/05/2009, 16:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Interactuar con Web

Si estás trabajando con VB.net, estás trabajando con programación orientada a objetos. Tal vez te falte conocer un poco de la teoría sobe la que se basa el modelo .NET.
Valga como ejemplo:
  • Un TextBox en la pantalla es un componente basado en instancias de diferentes clases que lo implementan, como la String. de hecho puedes instanciarlo sin que exista visualmente, lo que demuestra lo que te digo.
  • Cuando creas una variable en realidad estás creando una instancia de una clase.
  • Cuando usas una propiedad de una variable (que es un objeto), estás usando una propiedad de una instancia, pero no de la clase. De hecho si quieres usar la propiedad invocando a la clase (digamos String.Length), verás que no existe, porque la clase no posee existencia en memoria, con lo que no puede contener caracteres y por ende no tiene longitud. En este sentido podemos decir que un objeto ocupa un espacio en la memoria, la clase es lo que define a esa variable y lo que puede o no hacer o hacerse con ella.
Espero que estos ejemplos te den una idea de qué estoy hablando cuando me refiero a objetos reales dentro del html.

Tip final: Los códigos que te puse son para VB.Net; de hecho son parte de un proyecto desarrollado para una empresa, totalmente construido con VB.Net
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 25/05/2009, 18:33
 
Fecha de Ingreso: marzo-2009
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Interactuar con Web

Gracias por la info :). Pero lo que quisiera saber, es como aserlo desde cero, xq no entiendo en donde poner cada codigo.

Osea, abro por ejemplo una pagina de rapidshare e un webbrowser, lo que quiero es que al clikear un boton se clikee el boton que dice download de la pagina. Se entiende?, todo eso desde cero, xq sino no entiendo el codigo xD. O sino el codigo no desde cero, pero si donde va cada cosa.

Muchisimas gracias (Y).

Última edición por Sudestada; 25/05/2009 a las 18:38
  #10 (permalink)  
Antiguo 25/05/2009, 20:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Interactuar con Web

Echale una mirada a este post: http://www.forosdelweb.com/f79/relle...s-form-692929/
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 25/05/2009, 21:15
 
Fecha de Ingreso: marzo-2009
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Interactuar con Web

Bien, ya pude hacer lo que yo queria, MUCHISIMAS GRACIAS (Y).
Ahora, una cosita mas..
Porque al ingresar este codigo


AxWebBrowser1.Document.GetElementById("form1").All ("submit").Click()


me tira error?
  #12 (permalink)  
Antiguo 26/05/2009, 05:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Interactuar con Web

Difícil contestarte si no posteas qué error es el que te tira...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 26/05/2009, 15:37
 
Fecha de Ingreso: marzo-2009
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Interactuar con Web

el error es este:
Código:
'Public Event Click(sender As Object, e As System.Windows.Forms.HtmlElementEventArgs)' es un evento y no se puede llamar directamente. Utilice la instrucción RaiseEvent para provocar un evento.

   
  #14 (permalink)  
Antiguo 26/05/2009, 16:20
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Interactuar con Web

pon tu codigo
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #15 (permalink)  
Antiguo 26/05/2009, 17:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Interactuar con Web

No tengo, tengo armado el de un boton, pero eso del submit es lo q no me anda. Kiero saber eso :(.
Lo kiero incorporar a este codigo:
Código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim myDoc As HtmlDocument = WebBrowser1.Document
        myDoc.GetElementById("markitUp").SetAttribute("value", TextBox2.Text)
        myDoc.GetElementById("subject").SetAttribute("value", TextBox1.Text)
End Sub
Y quisiera que quede Asi:
Código:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim myDoc As HtmlDocument = WebBrowser1.Document
        myDoc.GetElementById("markitUp").SetAttribute("value", TextBox2.Text)
        myDoc.GetElementById("subject").SetAttribute("value", TextBox1.Text)
        WebBrowser1.Document.GetElementById("form1").All("Submit").Click()
    End Sub
Pero lo de rojo es lo que me tira error, que es el submit del formulario de la web.
  #16 (permalink)  
Antiguo 26/05/2009, 18:25
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: Interactuar con Web

usaste webbrowser o axwebbrowser

no dejas claro eso y ahi puede estar la confusion ya que el .Click en webbrowser es evento no metodo asi q debes usar RaiseEvent que hace la simulaicon del evento en cliente.

algo como

x.Document.GetElementById("miform").All("submit"). RaiseEvent("click")

pon que tipo de objeto es tu WebBrowser1
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #17 (permalink)  
Antiguo 26/05/2009, 19:12
 
Fecha de Ingreso: marzo-2009
Mensajes: 12
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Interactuar con Web

BUENISIMO!.
No me tira error ni nada.
Ahora, un solo favorcito mas

Boton en la web 1

<input onclick="vprevia(this.form.subject.value, this.form.message.value, this.form.tags.value, this.form);" class="button" style="font-size: 15px;" value="Previsualizar" title="Previsualizar" type="button">


Boton en la web 2

<input onclick="return oblig(this.form.subject.value, this.form.message.value, this.form.tags.value, this.form);" class="button" style="font-size: 15px;" value="Postear" title="Postear" type="submit">

Me podrian decir los nombres de cada control asi lo ubico en vb?
saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:28.