А как реализовать 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>