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 newbegin
Result := '';
Cliente_DDE:= TDDEClientConv.Create( nil );
with Cliente_DDE dobegin
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. Вот разбивка кода:
Функция Get_URL принимает строковый параметр Servicio, который указывает, к какому браузеру подключаться ('IExplore' - Internet Explorer, 'Netscape' - Netscape Navigator). Она возвращает захваченный URL в виде строки.
Внутри функции Get_URL создается экземпляр класса TDDEClientConv и присваивается переменной Cliente_DDE.
Метод SetLink используется для установления соединения с указанным сервисом (Servicio) и темой ('WWW_GetWindowInfo'). Это соответствует теме "Get Window Info" DDE для Internet Explorer или Netscape Navigator.
Метод RequestData используется для запроса данных от подключенного сервиса. В этом случае отправляется запрос с невалидным handle окна (0xFFFFFFFF) и хранится ответ в переменной temp.
Функция StrPas используется для преобразования переменной temp, которая является указателем на строку, в Delphi-строку.
Переменная Result устанавливается в захваченный URL с помощью функции StrPas.
Для предотвращения утечек памяти функция StrDispose используется для освобождения памяти, выделенной для переменной temp.
Наконец, метод 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
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.