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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Personalizar una descarga del Control WebBrowser
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Personalizar una descarga del Control WebBrowser  (Leído 2,784 veces)
**Aincrad**


Desconectado Desconectado

Mensajes: 683



Ver Perfil WWW
Personalizar una descarga del Control WebBrowser
« en: 25 Enero 2019, 18:46 pm »

Tengo una duda, Como prodria hacer q no aparezca el cuadro de dialogo de descarga del control.
y obtener la url de esa descarga??.



En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Personalizar una descarga del Control WebBrowser
« Respuesta #1 en: 25 Enero 2019, 21:05 pm »

Para cancelar la descarga de archivos puedes utilizar la interfaz 'ShellBrowserWindow' de la librería COM 'shdocvw.dll', ubicada en el directorio 'C:\Windows\System32'.

Para obtener la url de descarga, puedes leer el atributo 'href' del elemento HTML activo. Supongo que esto funcionará siempre así... aunque no me atrevo a asegurarlo al 100% ya que no domino de forma avanzada la programación HTML.

En fin. Para usar el siguiente código de ejemplo, primero añade una referencia a la librería que he mencionado... no te pase como la última vez  :¬¬ xD. Aquí tienes:

Código
  1. Public NotInheritable Class Form1 : Inherits Form
  2.  
  3.    Private WithEvents ShellWebBrowser1 As SHDocVw.ShellBrowserWindow
  4.  
  5.    Public Sub New()
  6.        MyClass.InitializeComponent()
  7.        Me.WebBrowser1.ScriptErrorsSuppressed = True
  8.    End Sub
  9.  
  10.    Private Sub Form1_Shown(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Shown
  11.        ' Sitio web con varias descargas de archivos zip...
  12.        Me.WebBrowser1.Navigate("https://www.thinkbroadband.com/download")
  13.    End Sub
  14.  
  15.    Private Sub WebBrowser1_VisibleChanged(ByVal sender As Object, ByVal e As EventArgs) Handles WebBrowser1.VisibleChanged
  16.  
  17.        ' Importante: no trasladar este código al método "Form1_Load"...
  18.  
  19.        Dim wb As WebBrowser = DirectCast(sender, WebBrowser)
  20.        If (wb.Visible) AndAlso (Me.ShellWebBrowser1 Is Nothing) Then
  21.            Me.ShellWebBrowser1 = DirectCast(wb.ActiveXInstance, SHDocVw.ShellBrowserWindow)
  22.        End If
  23.  
  24.    End Sub
  25.  
  26.    Private Sub ShellWebBrowser1_FileDownload(ByVal activeDocument As Boolean, ByRef cancel As Boolean) Handles ShellWebBrowser1.FileDownload
  27.        ' Cancelar descarga de archivo...
  28.        cancel = True
  29.  
  30.        ' Obtener la url de descarga...
  31.        Dim href As String = Me.WebBrowser1.Document.ActiveElement.GetAttribute("href")
  32.        Console.WriteLine(href)
  33.    End Sub
  34.  
  35. End Class

Nótese que esto no impedirá poder seguir usando el menú contextual para descargar un archivo mediante la opción "Guardar destino como..."

Si quieres impedir la descarga mediante el menú contextual, puedes crear tu propio menú y asignarlo a la propiedad WebBrowser1.ContextMenuStrip, o bien puedes suscribirte al evento HtmlDocument.ContextMenuShowing para cancelar la aparición del menú. Un ejemplo minificado:

Código
  1. Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
  2.    Dim wb As WebBrowser = DirectCast(sender, WebBrowser)
  3.  
  4.    AddHandler wb.Document.ContextMenuShowing,
  5.        Sub(ByVal browser As Object, ByVal args As HtmlElementEventArgs)
  6.            args.ReturnValue = False
  7.        End Sub
  8. End Sub

Saludos.


« Última modificación: 25 Enero 2019, 21:34 pm por Eleкtro (sin pilas) » En línea



**Aincrad**


Desconectado Desconectado

Mensajes: 683



Ver Perfil WWW
Re: Personalizar una descarga del Control WebBrowser
« Respuesta #2 en: 25 Enero 2019, 22:17 pm »

Como Evito que aparezca el cuadro de dialogo al activarse la descarga?,

No me da lo que contiene el href . la pagina es la siguiente https://www.convertmp3.io/widget/button/?video=https://www.youtube.com/watch?v=KhPNuBi8pJM puedes inspeccionarla.

En línea



Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Personalizar una descarga del Control WebBrowser
« Respuesta #3 en: 25 Enero 2019, 23:37 pm »

Puedes obtener el enlace de descarga al menos de estas dos formas...

1:
Código
  1. Me.WebBrowser1.Document.GetElementById("downloadButton").GetAttribute("href")

2:
Código
  1. Me.WebBrowser1.Document.Body.FirstChild.GetAttribute("href")

saludos
En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda] Control WebBrowser
Programación Visual Basic
CesarTkgo69 1 1,358 Último mensaje 7 Febrero 2008, 19:44 pm
por satan69
control webbrowser, dudas
Programación Visual Basic
grafisoft 3 2,280 Último mensaje 13 Febrero 2008, 10:18 am
por grafisoft
Control WebBrowser no Funciona!!
Programación Visual Basic
Cj2009z 4 2,084 Último mensaje 4 Agosto 2008, 21:49 pm
por pato_pato_pato
Duda con control WebBrowser
Programación Visual Basic
gulabyte 0 1,233 Último mensaje 26 Octubre 2008, 05:28 am
por gulabyte
Descarga desde WebBrowser « 1 2 »
.NET (C#, VB.NET, ASP)
Dragonatak 11 13,591 Último mensaje 4 Noviembre 2011, 05:02 am
por Dragonatak
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines