使用 Chromium 嵌入式框架覆盖鼠标

2024-01-14

是否有可能在文件中cefclient_win.cpp

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

鼠标消息被过滤掉,因为我只收到 WM_MOUSEMOVE 消息?

似乎左键或右键单击是在WndProc https://en.wikipedia.org/wiki/WindowProc抓住他们。特别是如何禁用鼠标右键单击?


我解决这个问题的方法是在 CEF 为每个浏览器窗口创建的线程中添加一个鼠标钩子:

// Hook to disable right mouse clicks
LRESULT CALLBACK MyMouseHook(int nCode, WPARAM wp, LPARAM lp)
{
    MOUSEHOOKSTRUCT *pmh = (MOUSEHOOKSTRUCT *) lp;

    if (nCode >= 0) {
        if( wp == WM_RBUTTONDOWN || wp == WM_RBUTTONUP ) {
            return 1;
        }
    }
    return CallNextHookEx(NULL, nCode, wp, lp);   
}

void 
CefBrowserApplication::OnCreate( 
    CefRefPtr<CefBrowserClientHandler> aBrowserClient)
{
    // Hook the mouse
    DWORD threadId = GetWindowThreadProcessId(aBrowserClient->GetBrowser()->GetWindowHandle(), NULL);
    HHOOK hook = SetWindowsHookEx(WH_MOUSE, MyMouseHook, NULL, threadId);
}

请注意,我没有使用低级鼠标挂钩,因为它们对于整个桌面来说是全局的。在全局低级挂钩中禁用鼠标右键单击将禁用所有正在运行的应用程序。

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

使用 Chromium 嵌入式框架覆盖鼠标 的相关文章

  • Tk 框架内的 Chrome 网页

    我想在 Tcl Tk 框架内运行我的 chrome 页面 我必须从 Windows 平台运行我的脚本 到目前为止 我可以使用 start 命令启动 chrome 页面 如何将我的 chrome 页面包含在 Tk 窗口内 eval exec
  • 为什么单线程异常会导致整个程序崩溃(如何防止这种情况?)

    例如 如果我跑步 int x 0x00000 程序崩溃了 但为什么整个程序崩溃而不是单个线程崩溃呢 我创建了多个连续睡眠的线程来测试这一点 有什么方法可以让当前线程退出 而不是整个程序 在Windows上使用winapi Thanks 但为
  • Chrome 检查器中的内容脚本是什么

    虽然这可能是一件非常基本的事情 但我似乎找不到这个问题的答案 我看到很多关于content scripts 当我打开时web inspector in chrome 然后选择sources 我看到一个名为content scripts 我看
  • NtDll 真的导出 C 运行时函数吗?我可以在我的应用程序中使用这些函数吗?

    我在查看 Windows 10 计算机上的 NtDll 导出表 发现它导出标准 C 运行时函数 例如memcpy sprintf strlen etc 这是否意味着我可以在运行时动态调用它们LoadLibrary and GetProcAd
  • 以编程方式最小化/恢复窗口,跳过动画效果

    我需要对窗口列表执行多项操作 最小化其中一些 恢复其他 以便立即在两组或多组窗口之间切换 这样做的问题是最小化和恢复窗口时可以看到的动画 整个过程看起来很糟糕 所有这些动画都进进出出 上下移动 但是 我无法禁用这些动画 因为这是针对其他计算
  • 修改代码以从 Windows 中的 PE 可执行文件检索双重签名信息?

    我已经挣扎了一段时间想要修改这段代码示例 https support microsoft com en us help 323809 how to get information from authenticode signed execu
  • WebGL VS Canvas 2D 硬件加速

    这些天 我需要在画布上画很多图像 画布尺寸为800x600px 我有很多256x256px的图像 有些更小 在上面绘制 这些小图像将在画布上组成一个完整的图像 我有两种方法来实现这一点 首先 如果我使用canvas 2D上下文 那就是con
  • createHTMLNotification() 替换

    我创建了一个 Chrome 扩展程序 其中使用createHTMLNotification 在所有内容之上显示一个窗口 然而 从 Chrome 28 开始 谷歌决定放弃createHTMLNotification 完全 为什么 谷歌 为什么
  • SignalR 更新无法在 Chrome 上正常运行

    我创建了一个带有 SignalR 通知的 ASP MVC 4 应用程序 我在本地以调试模式运行它 并通过 IIS 发布在服务器上运行它 使用 Internet Explorer 11 时 这基本上可以正常工作 稍后解释 HTML1300 N
  • setcookie with expire=0 浏览器关闭后不会过期

    我使用setcookie来制作一个过期 0的cookie 从 PHP 文档来看 link http php net manual en function setcookie php cookie 过期的时间 这是一个 Unix 时间戳 所以
  • Cocoa - 捕获 NSStatusItem 鼠标悬停事件

    当用户的鼠标悬停在我的 NSStatusItem 上时 如何执行函数 如果您分配自定义NSView给你的NSStatusItem s view属性 您可以覆盖NSResponder方法mouseEntered mouseMoved and
  • C++使用太多CPU

    好的 我正在创建一个游戏 但它使用了太多的 cpu 但它没有使用太多的内存 cpu确实增加和减少 我的游戏中有太多计时器 当我不再使用计时器时 我会杀死计时器 因此这应该会导致问题 但我认为导致问题的原因是我的消息队列中有太多消息 我有一台
  • 编写一个加载 msvcr80.dll 并公开 free() 函数的 DLL

    我有一个依赖于 MSVCR80 的第三方 DLL 并分配我需要清理的资源 图书馆有not暴露一个free 执行此操作的函数 相反 我需要加载相同的运行时库并手动调用free功能 作为一种解决方法 我尝试编写一个 包装器 DLL 它加载正确的
  • Chrome 支持 Brotli 吗? (Accept-Encoding不包含br)

    Can I use page http caniuse com search brotli说 Chrome 支持 brotli 一段时间了 我认为Accept Encoding字符串会是这样的 Accept Encoding gzip de
  • 在没有主窗口的 MFC 应用程序中创建多个对话框,它们成为彼此的子级

    标题已更新 继从this https stackoverflow com questions 2729371 creating multiple mfc dialogs through com strange behaviour问题 现在我
  • 如何获取 Android 版 Chromium 的源代码

    我正在尝试为 Android 构建 Chromium 开源浏览器 我已经提到过 Visit http code google com p chromium wiki AndroidBuildInstructions http code go
  • 在 Windows 7 上连接到高于 10 的 COM 端口时出现无效句柄错误

    我开发了一个简单的串行端口应用程序 可以在低于 10 的 COM 端口 COM9 COM8 COM1 上正常工作 但是 当我的设备连接到高于 10 的端口 例如 COM11 时 它无法连接 并且我收到 INVALID HANDLE 我的代码
  • toLocaleDateString() 在 Chrome 中如何工作?

    我理解了javascript方法toLocaleDateString 使用的计算机设置 让我们来W3Schools 示例 http www w3schools com jsref tryit asp filename tryjsref to
  • 我的 win32 程序应该在哪里保存其文件?

    我们的 win32 应用程序 用 C 编写 已经存在了 10 多年 并且尚未更新以遵循文件保存位置方面的 良好实践 应用程序默认安装在 C AppName 文件夹中 并将应用程序生成的文件 配置文件 下载的文件和保存的用户文档保存在该文件夹
  • 如何清除浏览器的缓存?

    当我在 Facebook 上玩应用程序且游戏未加载时 会出现提示 要求清除浏览器缓存 如何清除浏览器的缓存 似乎还没有人提到这一点 所以我想我应该插话一下 当你在 Chrome 中打开页面检查器时 你可以右键单击重新加载页面图标将与菜单一起

随机推荐

  • JavaScript 验证足以保证我的表单安全吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在建立一个网站 我对登录 注册页面上的表格有疑问 我在登录页面上有一些标准的 javascript 验证 我的问题是 如果禁用了 javas
  • 如何在Android Q中从Uri获取图像的实际路径?

    我正在使用相机拍照并从图库中进行选择 之后进行压缩以减小文件大小 我正在使用getRealPathFromURI 获取实际图像路径的方法 但在 Android Q 中MediaStore Images Media DATA已弃用 fun g
  • QML 中是否有来自 TreeView 的本机数据模型?

    QT 文档暗示 QAbstractItemModel 的任何实现都可以用于 TreeView 这些模型通常是用C 编写的 目前还不方便 那么是否有可以在树视图中使用的原生 QML 模型 我可以从 C 设置 QStandardItemMode
  • 如何将列表中的位置绑定到该元素的属性?

    我有一个ObservableList
  • MySQL 错误:“列‘columnname’不能是 FULLTEXT 索引的一部分”

    最近 我将一堆列更改为 utf8 general ci 默认的 UTF 8 排序规则 但是当尝试更改特定列时 我收到了 MySQL 错误 Column node content cannot be part of FULLTEXT inde
  • Ruby 中的 Java CLASSPATH 相当于什么?

    我想从任何地方运行 ruby 程序 我想我已经明白它是RUBYLIB 但我无法让它发挥作用 你能举例说明吗 您需要操纵加载路径 LOAD PATH 这是用完成的 I directories 目录之间用 在类 Unix 系统上并且由 在 DO
  • 如何在caret包中的指定网格中随机搜索?

    我想知道是否可以在预定义的网格中使用随机搜索 例如 我的网格有alpha and lambda for glmnet方法 alpha介于 0 和 1 之间 并且lambda介于 10到10之间 我想使用随机搜索5次来随机尝试这个范围内的点
  • Angular 2 场遮蔽

    我想屏蔽一个字段 例如 有 10 位数字的电话号码 123 123 1234 我需要以 xxx xxx 1234 的方式屏蔽 另外 在提交页面时 我需要将原始变量 123 123 1234 发送到服务 任何帮助将不胜感激 Thanks 这是
  • swagger-ui 和 spring webflux 出现 404 错误

    我正在使用 Spring Webflux 开发 REST 服务 并且我想使用 Swagger2 为我的 API 生成文档 我发现 Webflux 仅支持 Swagger2 版本 3 0 0 快照 这是我的配置 java 11 maven 3
  • 模拟器:警告:本机不支持快速启动/快照

    我开始学习android 但还没有取得任何进展 我按照说明下载了 android studio 并尝试设置 AVD 我正在使用带有 java 1 8 0 51 的 Mac Air macOS High Sierra 当我启动 AVD 时 事
  • 爬山算法简单例子

    我对爬山算法有点困惑 我想 运行 该算法 直到我找到该树中的第一个解决方案 a 是初始状态 h 和 k 是最终状态 并且它表示状态附近的数字是启发值 这是树 我的问题 我正在尝试在树上爬山 所以好吧 我们开始 a gt f gt g 然后完
  • Java什么时候有了JIT编译器?

    Java 何时首次获得用于生产代码的 JIT 编译器 http java sun com features 2000 06 time line html http java sun com features 2000 06 time lin
  • 列表 Cubit Flutter 中的 UpdateValue

    在应用程序中我使用的是 Cubit ItemData 从 firestore 获取 一切正常 但在列表中添加项目并更新 firestore 中的值 名称 后 列表中仍然是旧值 怎么解决呢 class TestPage extends Sta
  • Android 的 OAuth

    我正在尝试访问 Yelp API 我已经获得了我的钥匙 并阅读了大约 40 篇文章来解释我需要做什么 并且我已经尝试了一切 密钥和非密钥均有效 我得到以下信息 05 16 17 39 54 955 E AndroidRuntime 538
  • Admob 不展示测试广告,也不展示真实广告

    我已经在 Admob 广告上苦苦挣扎了近一周 我在互联网上搜索了所有可能的解决方案 但没有任何效果 我的 Android 应用程序不显示测试广告或实时广告 这是日志 I Ads Updating ad debug logging enabl
  • CWInterface 不返回数据

    我尝试收集有关 CWInterface 当前状态的一些信息 已连接的 bssid 可用的接入点 并通过 udp 定期 每 5 10 秒 将它们发送到服务器 我的问题是 一段时间后 在某些具有不同收集 发送间隔的测试中为 30 到 50 分钟
  • MySQL .cs​​v 加载由于“无法添加或更新子行:外键约束失败”而失败

    我正在尝试将包含棒球赛程表的 csv 文件加载到游戏表中 csv 文件内容如下所示 5 17 2011 8 10 PM 14 13 Kansas City MO 5 18 2011 8 10 PM 14 16 Chicago IL 5 19
  • 如何根据节点将一个XML文件拆分为多个XML文件

    我有一个 XML 文件 如下所示
  • HAProxy:带有重定向的 hdr_dom(host)

    我们有几个 haproxy 配置大部分运行良好 在我们的场景中 我们只是根据域名路由请求 以下是一个域 drawmessage com 的示例 frontend http bind 80 redirect prefix http app d
  • 使用 Chromium 嵌入式框架覆盖鼠标

    是否有可能在文件中cefclient win cpp LRESULT CALLBACK WndProc HWND hWnd UINT message WPARAM wParam LPARAM lParam 鼠标消息被过滤掉 因为我只收到 W