GVKun编程网logo

Delphi Chromium – 当用户点击网页中的按钮时,在Delphi应用程序中启动命令

18

本篇文章给大家谈谈DelphiChromium–当用户点击网页中的按钮时,在Delphi应用程序中启动命令,同时本文还将给你拓展Delphi:WebBrowser、MSHTML在Delphi中的使用、

本篇文章给大家谈谈Delphi Chromium – 当用户点击网页中的按钮时,在Delphi应用程序中启动命令,同时本文还将给你拓展Delphi : WebBrowser、MSHTML在Delphi中的使用、Delphi Chromium Embedded – 使用F5刷新页面、Delphi Chromium Embedded带来的麻烦、Delphi Chromium嵌入在DLL表单上等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Delphi Chromium – 当用户点击网页中的按钮时,在Delphi应用程序中启动命令

Delphi Chromium – 当用户点击网页中的按钮时,在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',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;

Delphi : WebBrowser、MSHTML在Delphi中的使用

Delphi : WebBrowser、MSHTML在Delphi中的使用

总结

以上是小编为你收集整理的Delphi : WebBrowser、MSHTML在Delphi中的使用全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Delphi Chromium Embedded – 使用F5刷新页面

Delphi Chromium Embedded – 使用F5刷新页面

我在我的应用程序中使用Delphi Chromium Embedded,我有以下问题:
如何模拟F5键刷新页面?

解决方法

OnKeyEvent中使用以下代码:
uses
  CEFLib;

procedure TForm1.Chromium1KeyEvent(Sender: TObject;
  const browser: ICefbrowser; event: TCefHandlerKeyEventType; code,modifiers: Integer; isSystemKey: Boolean; out Result: Boolean);
begin
  if (event = KEYEVENT_RAWKEYDOWN) and (code = VK_F5) then
  begin
    Result := True;
    Chromium1.browser.Reload;
  end;
end;

Delphi Chromium Embedded带来的麻烦

Delphi Chromium Embedded带来的麻烦

我是StackOverflow的新手,通常会在这里找到我想要的答案.除了这个时间.我很困惑.开始:

几个星期前,我下载了Delphi Chromium Embedded的Revision 306,并将其安装在Delphi XE的新副本上.现在,这是从DCEF Google Code页面的“下载”部分抓取的.

我注意到的第一件事是该网站提到支持Delphi XE,但没有专门为XE包含的项目包.当然,我安装了适用于Delphi 2010的软件包,因为XE2的软件包不能用于FMX,也许还有其他一些东西(?).

在过去使用过D7的旧版本时,我自然地在表单上删除了TChromium,将默认URL设置为http:// foundry-local / assist / node /,然后运行应用程序.这是我受到的欢迎:

Exception EExternal Exception in libcef.dll … External Exception 80000003.

无法在新的Google群组中发布任何内容(他们在“代码”页面上禁用了问题跟踪器),所以我想我会来这里弄清楚发生了什么.但就在此之前,我决定从主干中检出最新的代码构建.成功安装(仍然没有XE包),在空白表单上删除TChromium,然后运行应用程序.这次我受到如下欢迎:

Exception EReadError in module FoundryAssistNodeManager.exe at 0004BE24. Error reading Chromium1.Options.AcceleratedCompositingEnabled: Invalid property path.

因此:我真的很困惑.

(Edit: The app can see the core libraries,and they are being picked up.)

有没有其他人在Delphi XE上使用DCEF时遇到问题?如果是这样,任何人都有某种解决方案?

看,我正在为我即将发布的产品构建一个定制的帮助平台.使用IE是不可靠的,Gecko的组件不再开发.

任何提示,指导都会很棒.提前感谢你们.

解决方法

从技术上讲,这不是我的问题的答案,但我觉得有必要向观众展示这个问题的最佳路径.

非常简单:升级到DCEF3.

我当地的一些开发人员也报告了同样的问题,没有明显的修复.使用版本3解决了这个问题.

对于上述评论者,感谢您尽可能提供帮助.非常感激.

Delphi Chromium嵌入在DLL表单上

Delphi Chromium嵌入在DLL表单上

我有一个使用DLL的VCL表单的应用程序.在其中一个表格中,我从DelphiChromiumEmbedded放置了TChromium.有一个问题:当我卸载我的DLL(表单被破坏)时,应用程序冻结没有任何错误或AV.我找到了一些答案 – 在lib_cef.pas中评论了// cef_shutdown.在这条路径形式成功破坏,但我有大内存泄漏.使用其他任何从DLL创建表单的组件,销毁和卸载DLL都是成功的.

我如何正常使用TChromium组件的表单卸载DLL?

解决方法

每当我需要为DLL的情况创建对象时,类似的错误会影响卸载DLL.

如果您创建了应用程序对象的实例,则在执行卸载DLL之前,destroy会实例化应用程序.

关于Delphi Chromium – 当用户点击网页中的按钮时,在Delphi应用程序中启动命令的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Delphi : WebBrowser、MSHTML在Delphi中的使用、Delphi Chromium Embedded – 使用F5刷新页面、Delphi Chromium Embedded带来的麻烦、Delphi Chromium嵌入在DLL表单上的相关知识,请在本站寻找。

本文标签: