当前位置: 首页 > news >正文

CEF系列技术文章:菜单隐藏实现


核心逻辑与 ID 说明

CEF(Chromium Embedded Framework)中可通过硬编码指定菜单项 ID,结合菜单可见性判断接口,精准隐藏指定 Chrome 原生菜单;同时支持工具栏按钮的显隐控制,以下为核心实现与关键 ID 说明。

核心实现逻辑

通过定义默认隐藏的菜单项 ID 数组,在IsMenuItemVisible方法中校验目标 ID 是否在数组内,若匹配则返回false隐藏菜单;通过IsChromeAppMenuItemVisible接口接入 CEF 的菜单可见性判断流程,通过IsChromeToolbarButtonVisible控制工具栏按钮显隐。核心代码如下:

// 硬编码默认隐藏的菜单项ID(来自cef_command_ids.h)
static const int kDefaultHiddenMenuIds[] = {// 个人资料相关35039,  // IDC_PROFILE_MENU_IN_APP_MENU - 三点菜单中"您的 Chromium"个人资料菜单46100,  // IDC_PROFILE_MAIN_MENU - 个人资料主菜单// 关于/自定义Chrome40018,  // IDC_ABOUT - 关于 Chromium37350,  // IDC_CUSTOMIZE_CHROME - 更多工具→自定义Chrome40283,  // IDC_SHOW_CUSTOMIZE_CHROME_SIDE_PANEL - 自定义Chrome侧边栏40284,  // IDC_SHOW_CUSTOMIZE_CHROME_TOOLBAR - 自定义Chrome工具栏// Chrome推广功能40263,  // IDC_CHROME_TIPS - Chrome提示40264,  // IDC_CHROME_WHATS_NEW - Chrome新功能// Google Lens右键菜单40282,  // IDC_SHOW_GOOGLE_LENS_SHORTCUT - Google Lens快捷方式50124,  // IDC_CONTENT_CONTEXT_SEARCHWEBFORIMAGE - 右键:使用Google搜索图片50127,  // IDC_CONTENT_CONTEXT_SEARCHLENSFORIMAGE - 右键:使用Google Lens搜索图片50134,  // IDC_CONTENT_CONTEXT_SEARCHLENSFORVIDEOFRAME - 右键:使用Lens搜索视频帧50174,  // IDC_CONTENT_CONTEXT_LENS_REGION_SEARCH - 右键:Lens区域搜索50193,  // IDC_CONTENT_CONTEXT_LENS_OVERLAY - 右键:Lens覆盖层
};// 校验ID是否在默认隐藏列表
bool IsInDefaultHiddenList(int command_id) {for (int id : kDefaultHiddenMenuIds) {if (id == command_id) return true;}return false;
}// 判断菜单项可见性
bool IsMenuItemVisible(int command_id) {if (IsInDefaultHiddenList(command_id)) {LOG(INFO) << "=== Menu " << command_id << " (hardcoded): hidden";return false;}return true;
}// CEF Chrome应用菜单可见性接口
bool NiceClientHandler::IsChromeAppMenuItemVisible(CefRefPtr<CefBrowser> browser, int command_id) {CEF_REQUIRE_UI_THREAD();if (!filter_chrome_commands_) return true;LOG(INFO) << "=== IsChromeAppMenuItemVisible: command_id=" << command_id;return IsMenuItemVisible(command_id);
}// CEF 工具栏按钮可见性接口
bool NiceClientHandler::IsChromeToolbarButtonVisible(cef_chrome_toolbar_button_type_t button_type) {if (!filter_chrome_commands_) return true;switch (button_type) {case CEF_CTBT_AVATAR:LOG(INFO) << "=== Hiding Avatar button (CEF limitation: cannot intercept click)";return false;default:return true;}
}
 

修改CEF源码重新编译需要比较长的时间,我在Intel Ultra 5机器上8小时才完成编译,建议使用云电脑或者云服务器上进程编译。最近天翼云电脑在免费赠送高配云电脑,免费使用两个月,已实名的三网手机号即可扫码领取:

p2

 

如图,已经成功隐藏地址栏后面头像菜单,以及三个点菜单里面的关于chrome等菜单。

补充说明

  1. 所有 ID 均来自 CEF 源码的cef_command_ids.h文件,需确保 ID 与使用的 CEF 版本匹配;
  2. 可通过filter_chrome_commands_开关全局控制菜单过滤逻辑,关闭时将显示所有菜单项。
 
http://www.jsqmd.com/news/64506/

相关文章:

  • 2025最新灯塔工厂建设服务商/厂家TOP5评测!科技赋能+全周期服务权威榜单发布,引领智能制造新生态
  • AI真好玩系列-WebGL爱心粒子手势互动教程 | Interactive Heart Particles with Hand Gestures
  • 大数据分析基础及应用案例:第八周学习报告——深度学习与金融案例入门
  • 第47天(简单题中等题 数据结构)
  • SpyCloud数据揭示:企业用户遭遇钓鱼攻击的可能性是恶意软件的三倍
  • nccl-1_initialization bootstrap
  • 2025年国内TOP5会计培训机构推荐,引领专业提升之路
  • 2025年国内TOP5会计培训机构推荐,引领专业提升之路
  • 2025年评价高的草本床垫供应厂家TOP5推荐
  • 2025 最新智能运维服务商/ 厂家 TOP5 评测!科技赋能 + 全周期服务权威榜单发布,引领智慧工厂运维新生态
  • 人生第一篇博客:千里之行,始于足下
  • 2025年专业HIFI耳机口碑排行榜推荐,不容错过!
  • 全网热议!2025年比较好的全屋定制公司推荐
  • 全网热议!2025年靠谱的全屋定制品牌推荐,让生活更智能
  • 扩散炉供应厂家TOP推荐:2025年值得关注的优质厂家
  • Ancel AD410 OBD2 Scanner - Multi-Language OBD2 Code Reader Error Eraser for European American Cars
  • 2025年如何选择值得信赖的家居照明公司?
  • 2025年护眼吸顶灯销售厂家有哪些?
  • 豆包碰壁微信,你只看热闹吗?个人数据归属的经济范式、法理解析 与我们的未来
  • 20251206 之所思 - 人生如梦
  • 一些心事
  • 洛谷 P11345 [KTSC 2023 R2] 基地简化 题解
  • Visual Studio Installer 2022正在进行准备
  • 在keil 中使用__attribute__关键字实现静态加载
  • ANCEL AS100 OBD2 Scanner: Full EOBD/OBDII/CAN BMW Check Engine Light Diagnostic Tool
  • 2025最新广东餐饮生鲜配送服务商/厂家TOP5推荐!深圳/广州/佛山/东莞全覆盖,全品类供应+一体化服务权威榜单发布,赋能餐饮企业降本增效新生态
  • FOXWELL NT809BT OBD2 BiDirectional Scan Tool: All Systems Diagnostics + 30+ Resets for EU/US Cars
  • SSM文创产品推荐环境设计与实现95ml5(工具+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,框架界面在末了面。
  • obsidian dataviewjs查找冗余文件
  • 模板索引 字符串