Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

OLE с Internet Explorer

Delphi , Технологии , OLE

OLE с Internet Explorer

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

uses comobj;


 procedure OpenIE(aURL: string);
 var
   IE:        Variant;
   WinHanlde: HWnd;
 begin
   if (VarIsEmpty(IE)) then
   begin
     IE         := CreateOleObject('InternetExplorer.Application');
     IE.Visible := True;
     IE.Navigate(aURL);
   end
   else
   begin
     WinHanlde := FindWindow('IEFrame', nil);
     if (0 <> WinHanlde) then
     begin
       IE.Navigate(aURL);
       SetForegroundWindow(WinHanlde);
     end
     else
       ShowMessage('Can''t open IE !');
   end;
 end;


 procedure TForm1.Button1Click(Sender: TObject);
 begin
   OpenIE('http://www.swissdelphicenter.ch');
 end;

Программный код на Delphi использует COM-объект Internet Explorer для открытия URL в новом экземпляре Internet Explorer или для повторного использования существующего экземпляра, если он уже запущен.

Содержание кода:

  1. Директива uses comobj; позволяет использовать COM-объект.
  2. Процедура OpenIE принимает строковый параметр aURL, представляющий URL для открытия.
  3. Процедура проверяет, является ли переменная IE пустой с помощью функции VarIsEmpty. Если она пустая, создается новый экземпляр Internet Explorer с помощью метода CreateOleObject и устанавливается видимость на True.
  4. Метод IE.Navigate используется для навигации по указанному URL.
  5. Если IE не является пустой (т.е. найден существующий экземпляр), код использует функцию FindWindow для поиска handle окна рамки Internet Explorer. Если найден валидный handle, код навигирует к новому URL с помощью IE.Navigate. Кроме того, код устанавливает foreground window, чтобы привести IE-окно на передний план.
  6. Если не найден существующий экземпляр или возникла ошибка при навигации, код отображает сообщение об ошибке.

Обработчик события Button1Click просто вызывает процедуру OpenIE с URL 'http://www.swissdelphicenter.ch'.

Некоторые предложения:

  • Вам может потребоваться более надежный способ обнаружения запущенного Internet Explorer, например, проверка PID процесса iexplore.exe.
  • Если вы разрабатываете приложение Delphi, которое взаимодействует с вебом, вам может потребоваться альтернативное решение, не использующее Internet Explorer, например, использование компонента TWebBrowser или headless браузера PhantomJS.
  • Код не обрабатывает исключения, которые могут возникнуть при навигации. Вам может потребоваться добавление блоков try-except для ловли и обработки ошибок.

Альтернативное решение с использованием компонента TWebBrowser:

uses
  IdHTTP, IdSSL, WebCtrls;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Browser.Navigate('http://www.swissdelphicenter.ch');
end;

В этом коде используется компонент TWebBrowser (часть библиотеки Internet Direct) для навигации по указанному URL. Это более лёгкое решение, не требующее создания экземпляра Internet Explorer.

В статье описывается использование компонента OLE (Object Linking and Embedding) для открытия интернета-эксплорера из Delphi, с помощью которого можно открывать URLs и управлять окнами IE.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: OLE ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 09:29:02/0.0060279369354248/0