ДЛя это C# программисты посоветовали пример (см ниже), который замечательно быстро работает в отличии от того, который использовал я (MS Web Browser) и который жутко тормозит на машинах клиентов с 500-700 mz процессорами
Кароче есть работающий код на C#. и работвющий пример
http://www.gotdotnet.ru/Downloads/Examples/Downloads_GetFile.aspx?id=225788
Из него нужен класс public class HtmlDocument
в котором подключается некий ActiveX base("25336920-03F9-11CF-8FD0-00AA00686F13") - который как я понял является чемто типа инерпритаора HTML
ActiveX подключается через метод AxHost, примеров использования которого на VB.net я так и не нашёл((
using System;
using System.Collections.Generic;
using System.Text;
namespace WindowsApplication11
{
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows.Forms;
public class HtmlDocument : AxHost
{
public HtmlDocument()
: base("25336920-03F9-11CF-8FD0-00AA00686F13")
{
Application.OleRequired();
}
public static object Invoke(object target, string name, params object[] args)
{
return target.GetType().InvokeMember(name, BindingFlags.InvokeMethod, null, target, args);
}
public static object GetProperty(object target, string name)
{
return target.GetType().InvokeMember(name, BindingFlags.GetProperty | BindingFlags.IgnoreCase, null, target, new object[0]);
}
public static void SetProperty(object target, string name, object value)
{
target.GetType().InvokeMember(name, BindingFlags.SetProperty | BindingFlags.IgnoreCase, null, target, new object[] { value });
}
public string Html
{
get
{
object de = GetProperty(this.GetOcx(), "documentElement");
return (string) GetProperty(de, "outerHTML");
}
set
{
object activeX = this.GetOcx();
Invoke(activeX, "open", "text/html", "replace");
Invoke(activeX, "write", value);
Invoke(activeX, "close");
}
}
}
}
Ответить
|