Delphi Chromium - запуск команды в приложении Delphi при нажатии пользователем кнопки на веб-странице.

Я использую компонент Chromium в приложении Delphi.

Я хотел бы следующее поведение:

Когда пользователь нажимает определенную кнопку на веб-странице, приложение Delphi ("контейнер") должно выполнить команду (запустить внешний исполняемый файл с...).

Является ли это возможным?

1 ответ

Решение

Обновить:

Поскольку вы фактически запросили прослушиватель событий DOM для событий щелчка, проверьте следующий пример, прослушивающий событие нажатия кнопки поиска Google (элемент с идентификатором gbqfba):

uses
  ShellAPI, cefvcl, ceflib;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Chromium1.Load('www.google.com');
end;

procedure OnClickEvent(const AEvent: ICefDomEvent);
begin
  ShellExecute(Form1.Handle, nil, 'notepad.exe', nil, nil, SW_SHOWNORMAL);
end;

procedure OnExploreDOM(const ADocument: ICefDomDocument);
var
  DOMNode: ICefDomNode;
begin
  DOMNode := ADocument.GetElementById('gbqfba');
  if Assigned(DOMNode) then
    DOMNode.AddEventListenerProc('click', True, OnClickEvent);
end;

procedure TForm1.Chromium1LoadEnd(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; httpStatusCode: Integer; out Result: Boolean);
begin
  if Assigned(frame) then
  begin
    // here you should check the frame.Url to verify if you're on the right URL
    // before you try to search for the element and attach the event if found
    frame.VisitDomProc(OnExploreDOM);
  end;
end;
Другие вопросы по тегам