在默认浏览器中打开TWebBrowser链接

Bog*_*atu 5 browser delphi banner webbrowser-control delphi-xe2

我的应用程序显示从TWebBrowser控件中的Web加载的小横幅.这个横幅实际上是一个包含图像的HTML页面; 当用户点击图片时,它会将他们带到我们当前正在运行的促销活动中.

这里的坏处是,当点击TWebBrowser中的链接时,活动页面将在Internet Explorer中打开,而不是在默认浏览器中打开.我知道这TWebBrowser是因为是一个基于IE的控件,但有没有办法在用户的浏览器中打开链接?

谢谢.

Rem*_*eau 8

在这种情况OnBeforeNavigate2下,请检查请求的URL,如果它是您要启动的URL,则Stop()检查当前导航并调用ShellExecute()以在用户的​​默认外部浏览器中启动URL.

procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject; pDisp: IDispatch; var URL: Variant; var Flags: Variant; var TargetFrameName: Variant; var PostData: Variant; var Headers: Variant; var Cancel: WordBool);
begin  
  if (URL should be launched) then
  begin
    Cancel := True;
    WebBrowser1.Stop;
    ShellExecute(0, nil, PChar(String(Url)), nil, nil, SW_SHOWNORMAL);
  end;
end;
Run Code Online (Sandbox Code Playgroud)