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

DDE для захвата текущего URL из окна Internet Explorer или Netscape Navigator

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

DDE для захвата текущего URL из окна Internet Explorer или Netscape Navigator


Вопpос: "Можно ли сообщение "Пpогpамма выполнила недопустимую опеpацию....обpатитесь к pазpаботчику" считать официальным вызовом в США?


uses
  windows, ddeman, ...


function Get_URL(Servicio: string): string;
var
  Cliente_DDE: TDDEClientConv;
  temp: PChar;      //<<-------------------------This is new
begin
  Result := '';
  Cliente_DDE:= TDDEClientConv.Create( nil );
  with Cliente_DDE do
  begin
    SetLink( Servicio,'WWW_GetWindowInfo');
    temp := RequestData('0xFFFFFFFF');
    Result := StrPas(temp);
    StrDispose(temp);  // <<-- Предотвращаем утечку памяти
    CloseLink;
  end;
  Cliente_DDE.Free;
end;

procedure TForm1.Button1Click(Sender);
begin
   showmessage(Get_URL('Netscape'));
// или
   showmessage(Get_URL('IExplore'));
end;

Программа на Delphi, которая использует технологию Dynamic Data Exchange (DDE) для захвата текущего URL из окон Internet Explorer или Netscape Navigator. Вот разбивка кода:

  1. Функция Get_URL принимает строковый параметр Servicio, который указывает, к какому браузеру подключаться ('IExplore' - Internet Explorer, 'Netscape' - Netscape Navigator). Она возвращает захваченный URL в виде строки.
  2. Внутри функции Get_URL создается экземпляр класса TDDEClientConv и присваивается переменной Cliente_DDE.
  3. Метод SetLink используется для установления соединения с указанным сервисом (Servicio) и темой ('WWW_GetWindowInfo'). Это соответствует теме "Get Window Info" DDE для Internet Explorer или Netscape Navigator.
  4. Метод RequestData используется для запроса данных от подключенного сервиса. В этом случае отправляется запрос с невалидным handle окна (0xFFFFFFFF) и хранится ответ в переменной temp.
  5. Функция StrPas используется для преобразования переменной temp, которая является указателем на строку, в Delphi-строку.
  6. Переменная Result устанавливается в захваченный URL с помощью функции StrPas.
  7. Для предотвращения утечек памяти функция StrDispose используется для освобождения памяти, выделенной для переменной temp.
  8. Наконец, метод CloseLink используется для закрытия соединения с сервисом.

В процедуре Button1Click определяются два кнопки: одна для захвата URL из Internet Explorer и другая для захвата из Netscape Navigator. Когда кнопка нажимается, соответствующая функция Get_URL вызывается с желаемым именем сервиса в качестве аргумента, и захваченный URL отображается в сообщении.

В отношении вашего вопроса о том, является ли это официальным вызовом в Соединенных Штатах, я бы сказал, что DDE (Dynamic Data Exchange) не получает официального поддержки от Microsoft или Netscape Navigator. Хотя DDE была широко использованной технологией в прошлом, она в основном была заменена другими технологиями, такими как COM и Automation.

Таким образом, хотя это код может работать для захвата URL из Internet Explorer или Netscape Navigator, он не может бытьconsidered официальным вызовом в смысле, что он не получает одобрения или поддержки от поставщиков этих браузеров.

Описывается использование DDE для захвата текущего URL из окон Internet Explorer и Netscape Navigator с помощью Delphi.


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

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




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


:: Главная :: DDE ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:29:49/0.0036778450012207/0