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


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  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 616 veces)
**Aincrad**


Desconectado Desconectado

Mensajes: 506



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

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.709



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

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 por Eleкtro (sin pilas) » En línea


**Aincrad**


Desconectado Desconectado

Mensajes: 506



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

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.709



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

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
Duda con control WebBrowser
Programación Visual Basic
gulabyte 0 629 Último mensaje 26 Octubre 2008, 05:28
por gulabyte
Duda con control WebBrowser
Programación Visual Basic
gulabyte 2 1,666 Último mensaje 1 Noviembre 2008, 03:55
por gulabyte
no aparece control webbrowser
Programación Visual Basic
soru13 3 1,707 Último mensaje 17 Junio 2010, 03:58
por soru13
Descarga desde WebBrowser « 1 2 »
.NET (C#, VB.NET, ASP)
Dragonatak 11 9,587 Último mensaje 4 Noviembre 2011, 05:02
por Dragonatak
problema con control webbrowser vb6
Programación Visual Basic
Keruvinesh 1 1,249 Último mensaje 17 Mayo 2013, 16:02
por 79137913
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines