Отправляет email-рассылки с помощью сервиса Sendsay

Все об InternetExplorer

  Все выпуски  

Все об InternetExplorer - 65


Информационный Канал Subscribe.Ru

HOTCD - Диски почтой - игры, видео, софт на дисках. Все диски по 50 рублей за штуку (не болванки!). Оплата через webmoney, yandex деньги и др. Партнёрская программа.

 

Новинка! - "WebMasterSoft : FLASH" (CD)
Полный набор необходимого для работы с flash'ом софта. Подробные иллюстрированные учебники.
Больше 100 (!) профессиональных шаблонов flash-сайтов.
Цена: 210 руб (доставка по России - бесплатно). Наложенный платеж. Заказать - bshop@mail.ru

 

Все об InternetExplorer

выпуск #65


Сегодня в выпуске:


НОВОСТИ

  • В седьмой версии Internet Explorer появятся "табы"
  • Доля MS IE продолжает падать

СТАТЬЯ

  • Как запустить Internet Explorer или подключиться к нему

РЕКОМЕНДУЮ

  • "Создание сайта от А до Я" - 2 CD "WebMasterSoft"

НОВОСТИ

В седьмой версии Internet Explorer появятся "табы"

Разработчики Internet Explorer объявили, что в седьмой версии появятся так называемые "табы".

Табы - это интерфейсный элемент, позволяющий открывать несколько веб-страниц в одном окне браузера. В других браузерах табы используются уже довольно давно. В Opera издавна использовались многодокументные окна (MDI) . Табы в их современной форме популяризовал браузер Mozilla, а затем Firefox. Постепенно этот элемент интерфейса просочился и в другие браузеры. включая многочисленные браузеры на базе движка Internet Explorer, Opera и Safari (браузер для Mac OS X).

Единственным современным браузером (хотя и самым распространённым из всех) остаётся Internet Explorer. В Microsoft считали, что пользователи запутаются, если в браузере табы будут, а в других программах (например, в "Проводнике" Windows или в Windows Media Player) - нет. "Возможно, мы сначала приняли неверное решение, а теперь принимаем правильное", - пишут разработчики в официальном блоге Internet Explorer.

В ближайшем будущем ожидается бета-релиз IE7 - лишь "пробный камень" с целью проверить, как скажется изменение интерфейса на совместимости IE и многочисленных плагинов и надстроек к нему.

источник: http://www.compulenta.ru/

Доля MS IE продолжает падать

Случилось страшное: доля MS IE на браузерном рынке США упала-таки ниже отметки 90%. Будем считать, что Рубикон перейден? По сравнению с июнем прошлого года, по состоянию на 29 апреля доля браузеров из многочисленного семейства MS IE снизилась на шесть процентных пунктов и достигла 89%. Второе место (правда, все еще с ошеломляющим отрывом) занимает Mozilla Firefox – у него всего 6,8 процента. Это, впрочем, тоже совсем неплохой результат, поскольку в минувшем октябре, когда компания WebSideStory включила браузер в свою статистику, доля Firefox составляла всего три процента. Еще 2,2% взяли себе "фирменные" браузеры, построенные, как пишет AP, на движке Mozilla.

Отметим, что 89% Microsoft - это данные для всех платформ, включая Apple, *nix и другие экзотические системы. Если говорить только лишь о машинах, работающих под Windows, то здесь положение Microsoft выглядит чуть лучше: 91% на рынке США.

В Европе позиции Microsoft оптимизма не внушают. Например, среди немецких пользователей браузерами семейства MS IE пользуются лишь 69% пользователей, а 23% предпочитают бесплатный Firefox. А вот в Азии все пока выглядит относительно спокойно. Там с браузерами MS IE мучаются от 94 процентов в Японии до 98 процентов в Китае. Впрочем, учитывая курс Поднебесной на программную автономию, можно предположить что зависимость тамошних пользователей от IE – тоже не надолго.


(!!!) КИБЕРСАНТ-МАТРИЦА (!!!)

      КИБЕРСАНТ-МАТРИЦА - новейший(!!!) и самый грандиозный проект Рунета за всю историю его существования!!! Самое подробное и исчерпывающее руководство по киберсантингу, составленное с использованием технологий мультимедиа; революционный инструментарий; умопомрачительное программное сопровождение и надежная техническая поддержка... Создать собственную интернет-империю, приносящую доход не менее 1000-1500$ в месяц, теперь по плечу КАЖДОМУ...

     Миссия проекта: помочь получить ПОСТОЯННУЮ ВЫСОКОДОХОДНУЮ РАБОТУ , с перспективой непрестанного долгосрочного роста и доходом не ниже 1000-1500$ в месяц, всем желающим зарабатывать в сети Интернет...

      Подробности здесь: http://www.matrix.superzarabotok.ru


СТАТЬЯ

Как запустить Internet Explorer или подключиться к нему.

Сергей Осколков

В продолжение нескольких статей на Королевстве о работе с компонентом TWebBrowser хочу затронуть пару вопросов работы с Internet Explorer, которые раньше, кажется, не обсуждались. Почти все уже было в ответах Круглого стола, здесь - более подробно. Сначала немного теории

Internet Explorer и его объекты.

На рисунке изображена архитектура Internet Explorer (IE). Для того, чтобы соединить компоненты в целое, используются элементы ActiveX и интерфейсы ActiveDocument. Сам исполняемый файл IE мал (у меня на машине IE6 - 89 КБ). Он предоставляет окно и панель инструментов и непосредственно управляет элементом-браузером WebBrowser (ShDocVw.dll). Этот элемент, в свою очередь, управляет компонентом MSHTML.dll, который осуществляет парсинг (разбор) html и его отображение в окне браузера, а также предоставление документа в виде объектной модели. MSHTML, в свою очередь, управляет скриптовыми движками, плагинами и т.д. для отображения своего содержимого. WebBrowser также управляет активными документами, которые могут быть в него загружены, например документами MS Office. Как WebBrowser, так и MSHTML предоставляют свои интерфейсы для внешних программ. Первый из них может использоваться как элемент ActiveX. Компонент TWebBrowser из палитры компонентов Дельфи - это просто обертка для него.

Практические выводы из написанного следующие: для управления браузером в целом обычно мы используем методы TWebBrowser. Например, для загрузки документа или его печати. Для доступа к элементам документа мы используем интерфейсы, объявленные в MSHTML, основной из которых - IHtmlDocument2, получаемый через свойство TWebBrowser.Document. Еще я бы отметил интерфейс IHtmlWindow, который соответсвует объекту window в javascript. Через него также можно выполнить ряд полезных действий и получить доступ к элементам страницы. Теперь - к более конкретным вопросам.

Создаем и запускаем.

Напомню, что компонент TWebBrowser и интерфейс IWebBrowser2 - основной интерфейс для управления браузером, объявлены в модуле ShDocVw.pas. Для работы с интерфейсами MSHTML нужно импортировать одноименную библиотеку типов MSHTML.tlb (меню Project->Import Type Library, выбрать Microsoft Html Object Library).

Первая задача: запустить Internet Explorer и открыть в нем документ. Для запуска можно, конечно, воспользоваться функциями CreateProcess или ShellExecute, как для любой другой программы. Однако мы воспользуемся рассматриваемыми методами.

procedure TMainForm.Open(URL: string);
var WB: IWebBrowser2;
begin
  WB:=CoInternetExplorer.Create;
  WB.Visible:=True;
  WB.Navigate(URL, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
  WB:=nil;
end;

Здесь мы запускаем IE и открываем в нем нужный документ с диска или Веб-страницу. Если не уничтожать переменную WB сразу же, как в примере, то через нее мы имеем доступ к загруженному документу и также можем управлять экземпляром IE. Например, закрыть его. Непосредственно в интерфейсе IWeBrowser2 метода для этого нет. Однако в ShDocVw.pas объявлен интерфейс IWebBrowserApp = interface(IWebBrowser), который содержит метод Quit. Я не очень понимаю, почему это так, но работает и (WB as IWebBrowserApp).Quit, и просто WB.Quit - закрывается запущенный экземпляр IE.

В модуле ShDocView также определен тип TInternetExplorer. Им тоже можно пользоваться в описанных целях.

...
type
  TMainForm = class(TForm)
  ....
    procedure MyBeforeNavigate2(Sender: TObject; var pDisp: OleVariant;
              var URL: OleVariant; var Flags: OleVariant;
              var TargetFrameName: OleVariant; var PostData: OleVariant;
              var Headers: OleVariant; var Cancel: OleVariant);
  public
    IE: TInternetExplorer;
  ....
  end;
...
implementation
...
procedure TMainForm.btnIECreateClick(Sender: TObject);
begin
   if IE=nil then
   begin
     IE:=TInternetExplorer.Create(nil);
     IE.Visible:=True;
     IE.OnBeforeNavigate2:=MyBeforeNavigate2;
     IE.Navigate('d:\Internet\update.htm');
   end;
end;

procedure TMainForm.MyBeforeNavigate2(Sender: TObject; var pDisp, URL,
  Flags, TargetFrameName, PostData, Headers, Cancel: OleVariant);
begin
  Memo.Lines.Add(URL);
end;

procedure TMainForm.btnIECloseClick(Sender: TObject);
begin
  IE.Quit;
end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  IE.Free;
end;

В примере запускается Internet Explorer, мы подключаемся к его событию OnBeforeNavigate2 и открывается страница (здесь - с жесткого диска). При дальнейших переходах IE на другие страницы, строка адреса (URL) будет добавляться в элемент Memo. Мы также имеем возможность закрыть этот экземпляр IE из своей программы методом IE.Quit.

Подключаемся.

Следующая задача - подключиться к уже запущенному экземпляру IE. Если попытаться использовать функцию

GetActiveOleObject('InternetExporer.Application');

то мы получим сообщение об ошибке EOleSysError с сообщением "Операция недоступна". Дело в том, что, видимо из соображений безопасности, IE как сервер автоматизации, после запуска недоступен внешним программам. Это осуществлено так: при старте любой сервер автоматизации регистрирует себя с помощью функции CoRegisterClassObject. Если установить соответствующий флаг (REGCLS_SINGLEUSE) в этой функции, то объект будет недоступен другим приложениям.

Однако, подключиться к интерфейсу IWebBrowser2 запущенного IE все-таки можно! В том же модуле ShDocVw.pas объявлен интерфейс IShellWindows. Через него можно подключиться ко всем открытым окнам IE и Проводника (Explorer) Windows. Отличить первые от вторых можно по наличию свойства Document. Для доступа воспользуемся стандартными для коллекций методом Item(i) и свойством Count.

Здесь я натолкнулся на один подводный камень. Попробуем вывести адреса загруженных страниц во всех экземплярах IE в компонент Memo следующим образом:

//ошибочный код
procedure TMainForm.Button2Click(Sender: TObject);
var Winds: IShellWindows;
   i: integer;
begin
  Winds:=CoShellWindows.Create;
  for i:=0 to Winds.Count-1 do
  if (Winds.Item(i) as IWEbBrowser2).Document <> nil //проверка наличия свойства Document
  then Memo.Lines.Add(((Winds.Item(i) as IWEbBrowser2).Document as IHtmlDocument2).url);
end;

При выполнении этот код вызывал ошибку Interface not supported. Оказалось, что у окон проводника свойство Document может быть не равно nil и они благополучно проходят проверку, но при применении оператора as (Document as IHtmlDocument2) возникает исключение, т.к. получить интерфейс IHtmlDocument2 не удается. Как же правильно провести проверку? Здесь можно воспользоваться тем, что в применении к интерфейсам оператор as является оберткой для вызова метода QueryInterface и при компиляции преобразуется в вызовы указанного метода. Метод IUnknown.QueryInterface я и применил. Если окно является окном IE, то мы получим интерфейс IHtmlDocument2, а функция возвратит результат S_OK. В другом случае результат функции будет иным. Работающий код таков:

procedure TMainForm.Button2Click(Sender: TObject);
var Winds: IShellWindows;
  IEWB: IWebBrowser2;
  i: integer;
  Doc: IHtmlDocument2;
begin
 Memo.Clear;
 Winds:=CoShellWindows.Create;
 for i:=0 to Winds.Count-1 do
 if (Winds.Item(i) as IWEbBrowser2).Document&lt;&gt;nil then
 begin
  IEWB:=Winds.Item(i) as IWEbBrowser2;
  if IEWB.Document.QueryInterface(IhtmlDocument2, Doc)= S_OK
  then Memo.Lines.Add(Doc.url);
 end;
end;

Кстати говоря, окна Проводника тоже поддерживают интерфейс IWebBrowser2, и через него можно определить, какая папка открыта в окне в данный момент.

Подключившись к окну IE мы далее можем управлять им и получить доступ к загруженному в него документу. Например, можно закрыть все окна, где адрес страницы не отвечает заданным условиям. Можно также получить доступ к событиям IWebBrowser2. Кроме того, в модуле ShDocVw объявлен интерфейс событий DShellWindowsEvents

DShellWindowsEvents = dispinterface
 ['{FE4106E0-399A-11D0-A48C-00A0C90A8F39}']
 procedure WindowRegistered(lCookie: Integer); dispid 200;
 procedure WindowRevoked(lCookie: Integer); dispid 201;
end;

Если подключиться к нему, то можно отслеживать события возникновения и уничтожения окон IE и Windows Explorer.

Интерфейс IHtmlWindow2
Получив указатель на интерфейс Document: IHtmlDocument2, мы можем через него получить доступ к интерфейсу IHtmlWindow2, который соответствует объекту window в javasript.

var W: IHtmlWindow2;
W:=Document.ParentWindow;

Не буду описывать все его свойства, их можно найти в MSHTML_TLB.pas, упомяну только процедуру

procedure Alert(const message: WideString);

Эта процедура выводит окно с сообщением в браузере. Другой, на мой взгляд, необычный для Дельфи способ использования этого интерфейса - обращение к именованным объектам страницы. Как известно, в javascript объект window является объектом самого высокого уровня в иерархии, включающим в себя все остальные. К объектам, имеющим имя, можно обращаться через него - window.myObjectName. Если использовать тип OleVariant, т.е. позднее связывание, то это можно использовать и в Дельфи. Пусть на странице есть сценарий javascript, в котором описана функция showsearch(). Открыв эту страницу в TWebBrowser или в IE, как описано раньше, мы можем вызвать эту функцию.

//WB: TWebBrowser

procedure TMainForm.btnDoSearchClick(Sender: TObject);
var W: OleVariant;
begin
W:=(WB.Document as IHtmlDocument2).parentWindow;
W.showsearch;
end;
 

источник: http://www.delphikingdom.com


"Создание сайта от А до Я" - 2 CD "WebMasterSoft" -

Пакет включает в себя полный набор инструментов и документации для создания современного веб-сайта:

  • 1.2 Gb отличного веб-дизайнерского софта (на 2-х CD-r)
  • учебники и пособия по веб-дизайну
  • 170 профессиональных шаблонов сайтов
  • более 300 ява-скриптов и аплетов
  • коммерческие скрипты с детальным описанием настройки
  • руководства по раскрутке и интернет-рекламе
  • электронные книги по интернет-бизнесу
  • бесплатное обновление в течении 2-х месяцев!

Что нового? С момента первого релиза пакет "Создание сайта от А до Я" заметно прибавил в весе. Добавлены десятки новых учебников, скриптов, шаблонов и бизнес-руководств. А самое главное в состав пакета теперь включены 2 CD, содержащие все необходимые для создания сайта программы: последние версии популярных редакторов, лучшие графические программы и утилиты, программы для автоматической раскрутки и т.д. Всего более 120-ти проверенных временем и опытом программ. Возможна оплата наложенным платежом. Цена - 10 у.е. (включая стоимость доставки дисков). По вопросу приобретения пакета обращайтесь на e-mail - bshop@mail.ru


SOFTPARAD.NM.RU

Рассылка "Все об InternetExplorer" является частью проекта "SoftParad - обзоры и рейтинги интернет софта", там вы сможете найти больше программ и утилит для работы в Интернете. Основные разделы сайта:


ПИШИТЕ ПИСЬМА

e-mail - softparad@mail.ru



http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.review.allaboutie
Отписаться

В избранное