禁用 Chromium Embedded 3 (DCEF3) 中的上下文菜单

2023-12-31

我试图在 Chromium Embedded (DCEF3) 窗口中禁用鼠标右键(上下文菜单),但我没有得到,我没有找到任何设置来本地执行此操作。

例如,我可以禁用“查看源代码”,我正在使用下面的代码,但我真正想要的是禁用上下文菜单,或者不希望它出现。

注意:我在 DLL“Chromium.dll”中使用此库,该库与“Inno Setup”一起使用,相当于在 Web 浏览器中。

procedure TInnoChromium.OnContextMenuCommand(Sender: TObject;
  const browser: ICefBrowser; const frame: ICefFrame;
  const params: ICefContextMenuParams; commandId: Integer;
  eventFlags: TCefEventFlags; out Result: Boolean);
begin
if (commandId = 132) then Result := True; // MENU_ID_VIEW_SOURCE
end;

要禁用 DCEF 3 中的上下文菜单,您需要处理OnBeforeContextMenu http://magpcss.org/ceforum/apidocs3/projects/%28default%29/CefContextMenuHandler.html#OnBeforeContextMenu事件并清除其model范围。这就是参考文献所说的(我强调的):

在上下文菜单之前

在显示上下文菜单之前调用。 |参数|提供 有关上下文菜单状态的信息。 |型号|最初包含 默认上下文菜单。|模型|可以清除以显示没有 上下文菜单或修改为显示自定义菜单。不要保留 对 |params| 的引用或|型号|在此回调之外。

因此,要完全禁用上下文菜单,您将编写如下内容:

uses
  cefvcl, ceflib;

type
  TInnoChromium = class
  ...
  private
    FChromium: TChromium;
    procedure BeforeContextMenu(Sender: TObject; const browser: ICefBrowser;
      const frame: ICefFrame;
  public
    constructor Create;
  end;

implementation

constructor TInnoChromium.Create;
begin
  FChromium := TChromium.Create(nil);
  ...
  FChromium.OnBeforeContextMenu := BeforeContextMenu;
end;

procedure TInnoChromium.BeforeContextMenu(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel);
begin
  // to disable the context menu clear the model parameter
  model.Clear;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用 Chromium Embedded 3 (DCEF3) 中的上下文菜单 的相关文章

  • 安装前检查 Java 是否存在

    我正在为 jar 应用程序创建 Inno Setup 安装程序 我现在想做的是在继续安装之前检查 java 是否存在 所以我只需要确保用户能够运行 java jar my app jar 我现在正在做的是 Code function Ini
  • 在触摸屏上禁用文本输入上的 Chrome 粘贴菜单

    如何在触摸屏上禁用 Chrome 中这个烦人的上下文菜单 当我复制了一些文本时 在选择 长按任何输入时会弹出此窗口 我正在使用 CEFSharp Chromium 嵌入式框架 开发一个应用程序 并将其部署在 Windows 8 计算机的触摸
  • 无法为 32 位 HKLM 设置注册表插入

    我想在 Inno setup 中创建一个带有子菜单项的上下文菜单 问题是 它在 64 位注册表 WoW6432Node 部分插入 HKLM 密钥 The 文档 http www jrsoftware org ishelp index php
  • Inno Setup安装文件名附加AppVersion

    如何追加AppVersion to setup exe file 换句话说 如何使输出文件名为sample setup 1 4 2 0 exe Setup AppName GetStringFileInfo Sample exe Produ
  • 如何在 Inno Setup 中为控件卷出设置动画

    我想在我的安装程序中制作控件滚动的动画 你可以看这个视频 https drive google com file d 1H0HKTPXg9BdYD4HQWqCWHlGSTIHlcJa view 您可以使用计时器来为控件设置动画 Code f
  • Inno Setup,APP启动 Windows启动时

    对于 Inno 设置 我想为 Windows 启动时 MyAPP 自动启动创建一个复选框任务 我的代码如下 并且 如何编写下面的代码 DO Set AutoStart WhenWindowsStart Tasks Name StartMen
  • Inno Setup:如何根据代码更改语言文件

    我使用自己的语言文件 isl 而不是使用 Inno Setup 的默认语言文件 它允许我自定义一些消息 但现在 我想要每种语言文件有两个版本 一个用于首次安装 一个用于更新 但是 是否可以从代码中选择一个文件 如果是 该怎么做 也许有一些比
  • 从 Inno Setup 项目内部调用 MySQL

    我正在为一些使用 MySQL 的软件编写安装程序 我正在尝试运行 sql用于在安装时设置数据库的脚本 唉 我目前在执行它时遇到了很大的问题 这个问题似乎是由于这样一个事实而产生的 当你设置一条通往 sql文件内的 execute SOURC
  • Inno Setup 如何在浏览对话框中显示网络?

    在我的设置中 在浏览器中显示 浏览 按钮 wpSelectDir or CreateInputDirPage例如 网络永远不会显示 我对此进行了一段时间的搜索 但目前还没有找到任何解决方案 有没有办法显示网络并让用户选择网络路径 感谢您对此
  • Inno Setup安装先决条件[重复]

    这个问题在这里已经有答案了 我正在通过 Inno Setup 创建一个安装程序 我看到很多关于如何检测先决条件是否存在的代码示例 但没有任何关于当我找不到先决条件时如何实际安装先决条件的代码示例 我确信它非常简单 但是我该如何安装先决条件呢
  • 在 Inno Setup 中单击“下一步”按钮时验证自定义页面上的数据

    我已经设法获得一个基本脚本来显示向导 使用CreateInputFilePage 供用户识别我用来更新 XML 文件中某些设置的文件位置 但是 我想对所选文件的输入进行一些基本检查 而不是简单地接受用户提供的任何内容 例如 如果用户在内容无
  • 欢迎页面未显示,SelectDir 页面首先显示

    我正在尝试使用 Inno Setup 来制作安装程序 我想先显示欢迎页面 然后显示 SelectDir This is CurPageChanged示例代码 procedure CurPageChanged CurPageID intege
  • 使用 Inno Setup 更快地创建安装程序

    当我在大量文件 gt 2GB 上运行 Inno Setup 时 需要很长时间才能运行 我相信它把时间花在了压缩上 这应该是 CPU 限制的 但它只使用了几个 CPU 有没有办法将其分散到 许多 更多核心 具体来说 我正在处理这个提升发布存储
  • 如何通过 Inno Setup for NetBeans 使用自定义 .iss 文件

    我将 Inno Setup 5 与 NetBeans 8 一起使用 并且我已经能够创建一个安装程序来安装该应用程序C users username local appname 但是我希望将其安装在C Programfiles 我如何在 Ne
  • 是否可以使用 Inno Setup 更改安装程序的窗口标题栏?

    是否可以使用 Inno Setup 更改安装程序的标题栏 默认情况下是 AppName My Program 当您运行安装程序时 标题栏中会出现 设置 我的程序 是否可以隐藏这个词 Setup 将以下行添加到您的 InnoSetup 脚本文
  • 如何将 CefSharp 浏览器限制为给定域

    我想阻止我的应用程序显示特定域 即 example com 以外的网页 我最初的想法是检查请求 URL浏览前开启事件处理程序 public bool OnBeforeBrowse IWebBrowser browser IRequest r
  • Inno 安装脚本中的 HTTP POST 请求

    我想通过 POST 将 Inno 安装过程中从用户收集的一些信息提交到我们的服务器 明显的解决方案是包含一个 exe 文件 安装程序会将其提取到临时位置并使用参数启动 但是 我想知道 有没有更简单 更好的方法 基于 jsobo 使用建议Wi
  • 使用 InnoSetup 创建 NLog 日志文件文件夹

    我遇到一个问题 我需要我的用户能够在没有管理员权限的情况下运行我的应用程序 但同时 我需要 NLog 能够创建它的日志文件 它需要管理员权限才能在应用程序安装在同一文件夹中 我正在尝试在应用程序目录下创建一个目录 名为Logs 并给ever
  • 如何在“PrepareToInstall”期间显示进度?

    我正在开发的安装程序的大部分工作是在PrepareToInstall功能 因为我需要做的一切都可能失败 因此这是处理这些事情的适当位置 以防它们失败 通过在函数结果中传递错误消息 可以自动报告任何失败 安装程序实际复制的只有 3 个小文件
  • Inno Setup 中的文件关联

    我正在使用 Inno Setup 并尝试关联位于Program Files x86 在 Windows 7 中 我有以下内容 define MyAppName MyView define MyAppExeName MyView exe Se

随机推荐

  • 无法使用 C# 客户端反序列化日期时间属性 Neo4j

    我正在尝试使用 C 客户端从 Neo4j 中获取强类型对象 这一切都有效 直到我添加DateTime财产 我已成功将数据插入 Neo4j 数据库 并且可以使用控制台查看它 我还可以查询数据 但无法返回任何强类型对象 因为反序列化似乎失败 我
  • Linux C++:如何跨多个文件正确使用模板专业化?

    我有一个奇怪的问题 在 Windows 上 使用 Visual Studio 2010 以及 Intel 编译器 一切都按预期链接 但是 当我尝试在 Linux 上使用 CLang 3 0 编译代码时 它会编译 如果我只使用单个 CPP 文
  • 如何测量 Android wifi 连接中的上传/下载速度和延迟

    我需要一些 api 或操作代码 通过它们我可以测量 android 应用程序的上传 下载速度和 wifi 连接的延迟 您使用的是 2 2 Froyo 或更高版本吗 如果是这样 请在您的应用程序中导入流量统计信息 并在您的应用程序使用互联网时
  • C# 数据绑定不更新 WPF

    我正在尝试在后面的 C 代码而不是 XAML 中进行数据绑定 在 Expression Blend 2 中创建的 XAML 绑定到我的 CLR 对象工作正常 我的 C 实现仅在应用程序启动时更新 之后对 CLR 的后续更改不会更新我的标签内
  • php 抓取并输出给定​​标签中的特定值或数字

    所以我对 php 很陌生 但在一些帮助下 我已经弄清楚如何抓取具有像 h1 class 这样的标签标识符的网站 更好的是 我已经弄清楚如何输出我想要的精确单词或值 只要它由空格分隔即可 例如 如果给定的标签名称 的输出为 30 个球 我可以
  • Android:当我在片段附近使用它时,在 runOnUiThread 附近出现错误

    我是 Android 开发新手 我想将按钮与动画链接起来 我在附近遇到错误runOnUiThread and getApplication 当我将其添加为一项活动时 这很好 但是当在MainFragment它给出了错误 但是 当我修复错误时
  • 如何在 Windows 中通过鼠标挂钩设置光标位置?

    我正在尝试创建一个小应用程序 它将检测鼠标光标何时移动到屏幕边缘并将其移动到相对的边缘 以创建连续的桌面效果 如果有意义的话 下面是其他人的一些代码 鼠标钩子部分 我通过添加 SetCursorPos 来将鼠标暂时移动到固定位置 当我运行它
  • 部署到 Lightsail 实例失败,因为找不到适合您的部署组的实例

    继自马西的回答 https stackoverflow com a 64170933 5675325 我继续尝试使用他提到的步骤 调整区域 从 GitHub 进行部署 但我得到了 部署失败 因为没有找到您的实例 部署组 检查您的部署组设置以
  • xamarin VisualStudio for ios 中没有附加设备

    当我尝试使用 Visual Studio 中的 IOS 模拟器时 我遇到了真正的麻烦 所以我使用xamarin 最新稳定版本 在VS中创建了一个hello world应用程序 我将项目设置为主项目 当我刷新与mac的连接时 我无法选择应该在
  • 如何为 HWIOAuthBundle 编写用户提供程序

    我想通过社交网络编写一个登录功能 如果用户未登录 则将其保存到数据库中 如果用户存在 则登录该用户 我应该在我的提供商中写入什么内容 文件状态 该捆绑包需要一个能够根据以下内容加载用户的服务 oauth 端点的用户响应 如果您有定制服务 应
  • 将 KeyEvent 对象列表转换为字符串

    我正在开发一个需要能够使用外部 USB 或蓝牙键盘楔的应用程序 然后 我捕获 KeyEvent 并根据需要缓存它们 开始 结束标记 因此 此时我有需要将其转换为字符串的 KeyEvent 列表 所以我需要将这些有序的 KeyEvent 转换
  • 使用 Ganglia 进行 Spark 监控

    我正在测试 Apache Spark 框架 我需要监视有关集群的某些方面 例如网络和资源 Ganglia 看起来是满足我需要的一个不错的选择 然后 我发现Spark支持Ganglia Spark监控网页上有这样的信息 要安装 Ganglia
  • 谷歌云功能美国中部时区?

    我想知道什么时区云函数代码会像 EST CST MST PST 这样运行 我部署了函数来获取它 但它返回了2018 12 05T17 54 00 207Z并且不应用任何美国时区 不是在美国运行吗 export const dateLog f
  • vb.net 从通配符获取文件名列表

    我有字符串 c debug txt 在 Debug 文件夹中有几个 txt 文件 例如 test1 txt test2 txt test3 txt 如何从此字符串 c debug txt 获取通配符文件数组 a 0 c debug test
  • 快速搜索排序向量中大于 x 的最小值

    快速意味着比 O N 更好 这与 find 的能力一样好 我知道有ismembc and ismembc2 但我认为它们都不是我正在寻找的 我阅读了文档 他们似乎正在寻找会员equal到 x 但我想要索引第一个值较大 than x 现在如果
  • C++ Boost read_json 崩溃,我有 #define BOOST_SPIRIT_THREADSAFE

    最近其他人升级了我们的 boost 库 现在当 read json 函数被大量调用时我会看到这个 coredump 以前从未见过这个 我在代码中有 define BOOST SPIRIT THREADSAFE 这就是为什么以前没有发生这种情
  • TomEE + CXF配置参考

    所以我试图找到任何参考文档或使用这三个的重要示例 我发现的 最好的 是 TomEE OpenEJB JAXRS 重构 http rmannibucau wordpress com 2013 01 09 tomeeopenejb jaxrs
  • VS 2019 自定义 ASP.NET Core 项目模板

    我试图弄清楚如何 或者是否 可以创建一个自定义 Visual Studio 项目模板 该模板挂钩到 Visual Studio 2019 中可用的现有 ASP NET Core Web 应用程序模板 我想做的是类似于 madskristen
  • 使用 ApplicationViewBoundsMode.UseCoreWindow Windows Phone 8.1 时显示状态栏

    我的 Windows Phone 8 1 应用程序底部位于软件导航键下方 我用ApplicationViewBoundsMode UseCoreWindow使页面停留在软件导航键上方 但结果是页面的内容到达了状态栏下方 状态栏变得透明 有什
  • 禁用 Chromium Embedded 3 (DCEF3) 中的上下文菜单

    我试图在 Chromium Embedded DCEF3 窗口中禁用鼠标右键 上下文菜单 但我没有得到 我没有找到任何设置来本地执行此操作 例如 我可以禁用 查看源代码 我正在使用下面的代码 但我真正想要的是禁用上下文菜单 或者不希望它出现