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

2024-03-01

我的应用程序显示一个从网络加载的小横幅TWebBrowser控制。该横幅实际上是一个包含图像的 HTML 页面;当用户单击图像时,他们将进入我们当前正在进行的促销活动。

这里的坏处是,当单击 TWebBrowser 中的链接时,活动页面会在 Internet Explorer 中打开,而不是在默认浏览器中打开。我知道发生这种情况是因为TWebBrowser是一个基于IE的控件,但是有没有办法在用户选择的浏览器中打开链接?

谢谢。


In the 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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在默认浏览器中打开 TWebBrowser 链接 的相关文章

  • 禁用页面的浏览器打印选项(页眉、页脚、边距)?

    我在 SO 和其他几个网站上看到过以几种不同的方式提出这个问题 但大多数都太具体或过时了 我希望有人能在这里提供明确的答案 而不是迎合猜测 当有人在浏览器中打印时 有没有办法使用 CSS 或 javascript 更改默认打印机设置 当然
  • Delphi - 相当于C#的三元运算符? [复制]

    这个问题在这里已经有答案了 可能的重复 Delphi 中是否存在或者将来是否存在条件运算符 https stackoverflow com questions 2108609 is there or is there ever going
  • Delphi XE2 Firemonkey 示例应用程序未在 MAC 上运行

    我正在尝试在 Mac 上运行示例 Firemonkey 应用程序 但我在 Mac 中收到以下消息 dyld Library not loaded rpath libcgunwind 1 0 dylib Referenced from Use
  • 防止拖动不可拖动元素时出现重影?

    我正在创建一个利用 HTML5 拖放 API 的网站 但是 为了增加用户体验 我想在用户拖动不可拖动元素时防止出现重影 这可能吗 此外 几乎每个元素似乎 可拖动的 默认情况下 人们可以单击然后快速拖动浏览器中的几乎任何元素 这会创建一个重影
  • 我需要避免尝试更新连接到 TSQLQuery 的 Delphi TClientDataset 中的非物理字段

    概要 我的代码正在尝试更新 Delphi XE 中的非物理字段TClientDataset 连接到TSQLQuery以其SQL属性集 作为运行时的结果创建Open命令 我有一个TClientDataset连接到一个TDatasetProvi
  • 在 Delphi 2009 上安装最新版本的 Indy 10 [重复]

    这个问题在这里已经有答案了 是否有更新 Delphi 2009 中的 Indy 10 组件的分步指南 我读过正在卸载线程 https stackoverflow com questions 486210 what is the proper
  • 谷歌浏览器不显示一个网站的alert()弹出窗口

    我正在开发一个 javascript 循环 该循环会随着循环的进行而提醒每个键值 为了加快速度 我选中了 阻止此页面创建其他对话框 框 通常这只会抑制一个例程的弹出窗口 但它们还没有回来 在 Google Chrome 中 alert 消息
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • 查找Delphi项目中的所有编译错误

    我正在对我的 Delphi 项目进行一些重构 我希望能够做出改变 然后看看all项目中因该更改而中断的地方 类似于 Eclipse 列出项目的所有编译错误 在 Java 中 在 Delphi 中 我可以进行更改 然后重新编译我的项目 但编译
  • 在浏览器中查看 javascript 事件

    我正在使用火狐浏览器 有没有什么东西可以向我显示实时触发的所有 JavaScript 事件 您可以右键单击其中的元素Firebug http getfirebug com的 HTML 选项卡并单击日志事件 然后 您将在 控制台 选项卡中看到
  • 使用项目中的波形文件

    我目前只能通过将波形文件放在已编译的 exe 旁边来播放背景声音 但我实际上想要一个包含波形文件的静态可执行文件 这在Delphi XE2中可能吗 这是我的代码 SndPlaySound Raw wav SND ASYNC or SND L
  • Delphi 流畅的界面

    使用上有什么优点和缺点流畅的界面 http en wikipedia org wiki Fluent interface在德尔福 流畅的界面应该会增加可读性 但我对此有点怀疑one包含很多链式方法的长 LOC 是否存在编译器问题 是否存在任
  • Delphi:写入后代类中私有祖先的字段

    我需要修复第三方组件 该组件的类具有私有变量 该变量由其后代主动使用 TThirdPartyComponentBase class private FSomeVar Integer public end TThirdPartyCompone
  • 如何使用 Gmail 的 SMTP 和 Indy 10 发送电子邮件?

    我正在使用 Delphi 2009 和 svn 中最新的 Indy 10 通过 SMTP 发送电子邮件 但它不适用于 Gmail Google Apps 托管域 当我尝试发送电子邮件时 我收到 必须首先发出 STARTTLS 命令 我尝试用
  • Delphi 2010 - 从 XML 文档解码 Base64 编码图像

    我正在尝试从应用程序中的 XML 文档解码 base64 编码的 EMF 图像并将其呈现在屏幕上 但是 它似乎从未出现 如果我将 XML 文档中的数据复制 粘贴到 Notepad 中并使用Base64 Decode选项并将文件另存为 emf
  • 如何使 StringGrid 的列适合网格的宽度?

    我已经寻找解决方案很长时间了 但没有任何运气 有谁知道一个简单的方法来做到这一点 例如 我想拉伸网格的第二列以适应网格的宽度 Use the ColWidths财产 像这样 with StringGrid1 do ColWidths 1 C
  • 防止多个实例 - 但还要处理命令行参数?

    我正在从我的应用程序处理与 Windows 相关的扩展文件 因此 当您在 Windows 中双击文件时 它将执行我的程序 然后我从那里处理该文件 如下所示 procedure TMainForm FormCreate Sender TObj
  • 严格/过渡 DOCTYPE 之间的浏览器渲染差异

    前段时间我遇到了一个 问题 但我从未深入了解过 希望有人能够照亮它 当我将 DOCTYPE 从严格更改为过渡时 是什么导致某些浏览器 Chrome Opera 和 Safari 以不同方式呈现页面 我知道造成这种情况的一般原因是触发了怪异模
  • 通过套接字发送动态数组(在记录内)?

    我正在尝试直接使用 SendBuf 将记录从服务器传输到客户端 但是 该记录有一个动态数组的成员 并且我在某处 在 SOF 中 读到 发送记录时 成员必须是静态的 固定长度 但问题是 我无法确定如何我会 将来 发送许多论点 我怎么解决这个问
  • Delphi中使用FindVCLWindow调用WinHelp32(WinXP Pro SP3 32bit)

    有什么问题吗 procedure TForm1 VCLHelpClick Sender TObject var Ctrl TWinControl begin Ctrl FindVCLWindow Mouse CursorPos if Ctr

随机推荐

  • 如何压缩包含超过 12GB 数据的文件夹

    我需要压缩一个包含大量文件的文件夹 当我尝试在命令行中进行压缩时 它显示压缩错误 输入文件读取失败 我搜索网络并发现 ZIP 文件格式 仅处理可以的文件长度 包含在 32 位整数中 如果是这样 那么它一定是我收到错误的原因 因为我的文件夹大
  • 如何使用asihttprequest接受自签名证书

    我正在尝试获取自签名证书来使用我的应用程序 我现在正在使用 ASIHTTPRequest 库 如下所示 IBAction sendHttpsRequest Set request address NSMutableString databa
  • 现在 CGI 脚本有哪些用途?

    我非常熟悉一般的 Web 编程语言 但我现在使用的工具之一是 CGI 我只能说 CGI 脚本相当慢 CGI 如今仍然普遍使用吗 如果不是的话 被什么取代了 是否存在 CGI 仍然存在并被积极使用的利基功能 CGI是协议 它是创建动态页面最基
  • 使用循环合并和创建表

    我尝试搜索如何使用循环合并和创建多个表 但找不到我正在寻找的内容 我有四个表 表 1 1 1 2 1 3 和表 2 表1 1 1 2和1 3共享相同的列但具有不同的行 表 2 与表 1 1 1 2 和 1 3 具有相同的第一列 具体来说 表
  • 防止线程在处理异常后分离时调用 std::terminate()

    我有自己的线程类 旨在帮助安全地管理异常 它看起来像这样 为了简单起见 跳过了其他构造函数和互斥体 class ExceptThread public std thread public template
  • 打开磁力链接而不失去焦点

    javascript 或其他 有没有办法在浏览器失去焦点的情况下处理磁力链接 这有点像在后台打开一个选项卡而不离开当前页面 我最近遇到了类似的问题 并且能够通过在页面上创建命名框架并将其用作目标来解决该问题window open windo
  • 正则表达式:一次性获取没有扩展名的文件名?

    我只想使用正则表达式获取文件名 所以我一直在尝试简单的事情 例如 当然 只有当文件名具有一个扩展名时才有效 但如果是的话adfadsfads blah txt我只是想adfadsfads blah 我怎样才能用正则表达式做到这一点 关于大卫
  • 检查 C 中的溢出

    让我们有 int a b c may be char or float anything actually c a b 让int类型用4个字节表示 假设 a b 需要比 4 个字节多 1 位 即 假设结果是 1 00 0 32 个零 二进制
  • Surface SDK 可以在 Visual Studio 2012 上运行吗?

    我需要使用 Surface SDK 创建一个 WPF 应用程序 我正在使用 Visual Studio 2012 并且根据this https stackoverflow com questions 11624895 how can i u
  • AndroidNotification.Builder与NotificationCompat.Builder[重复]

    这个问题在这里已经有答案了 我看到的几乎所有 Android 通知示例代码似乎都使用了NotificationCompat 我已经使用Notification Builder编写了自己的代码 我不清楚使用NotificationCompat
  • 我应该如何多次插入多条记录?

    我有一个名为Entry声明如下 class Entry string Id get set string Name get set 然后是一个接受多个这样的方法Entry使用 ADO NET 插入数据库的对象 static void Ins
  • 两次之间经过的小时数,与国家/地区和时区无关

    我们如何确定两次之间经过的小时数 例如 旧金山下午 3 30 迪拜下午 7 30 我不清楚的部分是 是否存在通过考虑时区和国家来计算减去的时间跨度的通用方法 我使用 C 作为主要语言 任何帮助将不胜感激 提前致谢 您询问的是 旧金山下午 3
  • 如何在Python中使用wrap_strategy来处理谷歌表格?

    我有一个 python 代码 它使用驱动器和工作表 api 来列出文件夹内的文件 我在这个文件夹中有多个谷歌工作表 其中一些在文本之间有空格 就像图片中给出的那样 我想使用 googlesheet api 将所有单元格的文本换行更改为溢出
  • iOS - 具有自动布局的比例间距

    我正在尝试使用界面生成器创建一个完美的比例视图 到目前为止 一切都很好 我正在以编程方式缩放字体 按钮等 唯一的问题是元素之间的约束 间距 保持不变 我想避免为间距限制创建出口 因为它看起来很混乱 我希望元素之间的间距在拉伸元素时保持成比例
  • 使用用户名通过 https 配置 WCF 以获得 WS-Security

    我正在尝试使用 WCF 客户端通过 https 调用基于 Java 启用 WS Security 的 Web 服务 但似乎无法获得正确的安全配置 使用 SvcTraceViewer 我在尝试过的任何安全配置中都没有看到预期的安全标头 我最近
  • Android Studio“运行应用程序”对话框不会出现在一个项目中,但会出现在另一个项目中

    我正在用 Android Studio 制作一个非常简单非常愚蠢的应用程序来了解如何保存关键首选项 但我遇到了一个奇怪的障碍 我会尽力提供尽可能多的信息 因为可能很难重现这个错误 但老实说 我正在运行的两个应用程序都是超级基础在那里没有编译
  • 如果选中单选按钮,则更改父 div (li) 背景 - javascript

    我在 li 元素内有单选按钮 我想在选中单选按钮后更改 li 父 div 的背景颜色 我成功地通过 CSS 在 li 上设置了悬停 但 checked 似乎不适用于父 div 这是我的 html css 代码 job manager ter
  • 如何使用 jquery mobile 在网络应用程序上添加全屏欢迎图像

    我认为 jQTouch 中有它 但是如何为使用 jQueryMobile 开发的 iPhone Web 应用程序添加全屏欢迎图像 该应用程序是一个全屏网络应用程序 它已经添加到 iPhone 主屏幕中 这只是一个概念 但你可以尝试这样的事情
  • 在 NodeJS 中将一个大型 csv 文件(200'000 行以上)插入到 MongoDB 中

    我正在尝试解析一个大的 csv 文件并将其插入到 MongoDB 中 但是当该文件扩展 100 000 行时 我从服务器得到了错误的响应 而我需要插入的文件通常都在 200 000 行以上 我尝试过批量插入 insertMany 和Baby
  • 在默认浏览器中打开 TWebBrowser 链接

    我的应用程序显示一个从网络加载的小横幅TWebBrowser控制 该横幅实际上是一个包含图像的 HTML 页面 当用户单击图像时 他们将进入我们当前正在进行的促销活动 这里的坏处是 当单击 TWebBrowser 中的链接时 活动页面会在