当用户在网页按钮点击时,Delphi Chromium如何触发Delphi应用命令?
- 内容介绍
- 文章标签
- 相关推荐
本文共计311个文字,预计阅读时间需要2分钟。
在Delphi应用中使用Chromium组件时,想实现以下功能:当用户单击网页中的特定按钮时,Delphi应用程序(容器)必须执行特定命令(例如,启动外部可执行文件)。可能吗?
更新:由于您的实际需求,我进行了以下简化:
当用户点击网页中的特定按钮时,Delphi应用程序应启动外部可执行文件。
我在Delphi应用程序中使用Chromium组件.我想要以下行为:
当用户单击网页中的特定按钮时,Delphi应用程序(“容器”)必须执行命令(使用…启动外部可执行文件).
可能吗 ?
更新:由于您实际上已经为点击事件请求了DOM事件监听器,请检查以下示例监听Google搜索按钮单击事件(ID为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;
本文共计311个文字,预计阅读时间需要2分钟。
在Delphi应用中使用Chromium组件时,想实现以下功能:当用户单击网页中的特定按钮时,Delphi应用程序(容器)必须执行特定命令(例如,启动外部可执行文件)。可能吗?
更新:由于您的实际需求,我进行了以下简化:
当用户点击网页中的特定按钮时,Delphi应用程序应启动外部可执行文件。
我在Delphi应用程序中使用Chromium组件.我想要以下行为:
当用户单击网页中的特定按钮时,Delphi应用程序(“容器”)必须执行命令(使用…启动外部可执行文件).
可能吗 ?
更新:由于您实际上已经为点击事件请求了DOM事件监听器,请检查以下示例监听Google搜索按钮单击事件(ID为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;

