А как реализовать CreateObject(позднее связывание) + WithEvents? - VB
Формулировка задачи:
Смотрим на этот старый топик:
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
Я немного поигрался. Вопрос в принципе решается.
Нужно реализовать такой код (смысл, чтоб окно IE было закрыто в любом случае, на экран выводится только диалог сохранения, при ошибке невидимое окно IE надо закрыть):
Вообще говоря мне это нужно сейчас сделать в VB.Net а не в VB6. Но решил поиграться сначала в VB6.
Использовать раннее связывание в .Net я не рискну - там для COM версии автоматически не подставляются если делать ранние ссылки.
Смотрел еще на тамошний объект WebBrowser, но что-то он мне для этой задачи не нравится.
Создал тему в .Net:
Вызов стандартного окна загрузки IE
но никто ничего не отвечает.
Решил здесь спросить.
Загрузить файл через IE, дождаться завершения и отловить если что ошибки
Я немного поигрался. Вопрос в принципе решается.
Нужно реализовать такой код (смысл, чтоб окно IE было закрыто в любом случае, на экран выводится только диалог сохранения, при ошибке невидимое окно IE надо закрыть):
Мне надо переписать этот код (события!!!) для позднего связывания
:Вообще говоря мне это нужно сейчас сделать в VB.Net а не в VB6. Но решил поиграться сначала в VB6.
Использовать раннее связывание в .Net я не рискну - там для COM версии автоматически не подставляются если делать ранние ссылки.
Смотрел еще на тамошний объект WebBrowser, но что-то он мне для этой задачи не нравится.
Создал тему в .Net:
Вызов стандартного окна загрузки IE
но никто ничего не отвечает.
Решил здесь спросить.
Решение задачи: «А как реализовать CreateObject(позднее связывание) + WithEvents?»
textual
Листинг программы
using System; using System.Net; namespace WebDownload { public class WebDownload { public event EventHandler<webdownloadeventargs> Error; public event EventHandler<webdownloadeventargs> FileDownload; public void Download(string Link, string Destination) { try { var request = (HttpWebRequest)System.Net.HttpWebRequest.Create(Link); request.Method = "HEAD"; var response = (HttpWebResponse)request.GetResponse(); if (response.ContentLength != -1) { OnFileDownLoad(new WebDownloadEventArgs() { Status = @"FileDownload" }); var wc = new WebClient(); wc.DownloadFile(Link, Destination); OnFileDownLoad(new WebDownloadEventArgs() { Status = @"Download completed" }); } else { OnFileDownLoad(new WebDownloadEventArgs() { Status = @"Not download content" }); } } catch (Exception ex) { OnError(new WebDownloadEventArgs() { Status = ex.ToString() }); } } private void OnFileDownLoad(WebDownloadEventArgs e) { if (FileDownload != null) { FileDownload(this, e); } } private void OnError(WebDownloadEventArgs e) { if (Error != null) { Error(this, e); } } } public class WebDownloadEventArgs : EventArgs { public string Status { get; set; } } } </webdownloadeventargs></webdownloadeventargs>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д