cef
注入代码到 steam UI 及禁用 steam 更新检查
当前 steam 版本: 8.63.11.84, 更新于 2024年1月13日,8:58:56注意到 steam 的 UI 是网页格式的, 检查后确定其使用 CEF 展示, 在 steam 根目录游走发现 steamui\localization下放了 steam 的本地化文件, 且steamui\chunk~2dcc5aaf7.js是入口文件. 尝试随机修改一些翻译后触发了 steam 的更新, 更新后相关文件复原. 注意到 logs 下有许多日志, bootstrap_log.txt描述了启动流程. 当一切正常时, 最后几行如下: [2024-01-18 19:40:2…
2024年1月 最近在看chromium的入门文档,虽然只是看个大框架,但是随便看了一下代码的文件名,感觉chromium就是一坨坨糊起来的,一个模块,有内部实现的API,有对外的开放的API,模块间的互引互依尽可能的少了,但是也复杂到画个稍微细一点点的系统框图都画不出来的地步。难怪这货代码那么多。 我觉得,如果这货要是重头重构,就用C++11,统一风格统一标准,那代码最低也能少一半。但是这个坨坨已经没救了,重构是不可能重构的了…
cef115.3.*(cef115.2.* cefsharp 115.* chromium5790分支)新版本-H264视频播放
【一、CEF依赖重大变化】 CEF 115.3.11兼容cef115.3.10版本(最低依赖.NETFramework 4.6.2) CEF 114.2.130版本将是.NETFramework 4.5.2的最后一个支持版本(已测版本114.2.110)!! CEF 114.2.13+g6792e13+chromium-114.0.5735.200 / Chromium 114.0.5735.200 CEF 115版本分支5790(最低NET4.6.2),114版本分支5735(最低NET4.5.2) [图片] [图片] 二进制编译文件地址下载: CEF Automated Builds ( spotifycdn.com )【二、包nupkg下载及依赖变化…
cefsharp就是一个chrome浏览器如果你这个壁纸软件用的是浏览器特效的话,那就有可能占用GPU了。比如用webgl做的shader特效,然后优化做差了点就会占得多。当然还有别的,比如是浏览器播放MP4的,也有可能占用GPU。
网上的资料比较分散和老旧,这里推荐一个看过的电子书,一个大佬写的,讲解的非常全面,只要看这个就够用了。 《 CEF 桌面软件开发实战》 https://s.juejin.cn/ds/iMFLNCT/
CEF与Node集成【5】页面与Node.js交互
CEF窗口加载页面之后,我们会让页面加载一个脚本(我们的框架提供的),这个脚本会连接Node进程启动的websocket服务。 import EventEmitter from 'eventemitter3'; import { Util } from '../common/Util'; class NodeMessageChannel extends EventEmitter { private ws: WebSocket; sendMsgToNode(msg: any): Promise { return new Promise((resolve, reject) => { let __msgId = Util.randomNum(); this.once(__msgId.toS…
CEF与Node集成【4】页面与CEF交互
开发者开发页面的时候,也可能会操控窗口, 这时我们一般不会让开发者先访问Node进程,再通过Node进程去控制CEF主进程里的窗口,这样做太绕了。 我们要让页面直接控制主进程(页面在渲染进程里,与主进程也不是同一个进程,这种工作也是跨进程的) 要想让页面可以访问CEF的主进程,就需要先在CEF的渲染进程里为页面注册JS入口,如下代码所示: 有心的读者应该还记得,我们在上一节中讲入口函数时,里面有实例化RenderProcessHand…
CEF与Node集成【3】CEF启动逻辑
入口函数先看CEF的入口函数 //整个应用的入口函数 int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPTSTR lpCmdLine, _In_ int nCmdShow) { CefEnableHighDPISupport(); //收集命令行参数 CefMainArgs mainArgs(hInstance); CefRefPtr commandLine = CefCommandLine::CreateCommandLine(); commandLine->InitFromString(::GetCommandLineW());//todo mac //为不同进…
CEF与Node集成【2】Node.js启动逻辑
在上一篇文章中,我们知道Node.exe启动时,会直接加载app/index.js, 这个文件是开发者写的,开发者写这个文件时,会使用我们为他提供的一个库:horse.js 本节我们就介绍这个库的逻辑。 全部代码在这里,下面有介绍: import http from 'http'; import serve from 'koa-static'; import path from 'path'; import Koa from 'koa'; import { WebSocketServer, WebSocket } from 'ws'; import { AddressInfo } from 'net'; import …
CEF与Node集成【1】修改Node源码
去掉命令行交互窗口Node.js有一个命令行交互窗口, 我们如果不改node的源码没办法把这个窗口彻底的干掉。 打开这个文件: ode\src\ http://node_main.cc,在 #ifdef _WIN32内部加一个方法:int APIENTRY wWinMain(HINSTANCE instance, HINSTANCE, wchar_t* cmd, int) { SetEnvironmentVariable("NODE_SKIP_PLATFORM_CHECK", "1"); return wmain(__argc, __wargv); } SetEnvironmentVariable 是为了让Node不要检查我的操作系统版…
Electron相关的性能问题,7年未解决,NW.js、CEF都没有。
注意,这里我说的,是相关的性能问题,不一定是Electron的。这个问题是BrowserWindow、BrowserView、webview加载页面的时候, 会消耗1.5~6秒的时间, 电脑配置越差,消耗的时间越长, Windows7 8 10 11上都有这个问题,Mac下没这个问题。 这个问题与Windows自带的杀毒软件有关, 解决这个问题的办法是为Windows自带的杀毒软件添加一个例外目录或者关掉Windows自带的杀毒软件, 这个目录应该是你的Electron应用程序的安装目录, …
JUCE内嵌cef,实现浏览器与vst互操作 (使用CMake+VS2022构建)
先放成品: [图片] 众所周知,JUCE作为一款跨平台的常用于开发数字音频相关插件的C++框架,但是本人作为一名前端觉得拿C++写界面也还是有些不适应。因此尝试过以下方案在JUCE中内嵌浏览器: JUCE 自带的内嵌浏览器 (juce_gui_extra/WebBrowserComponent): 跨平台,不需要额外操作,windows下支持ie内核和新版基于chrome内核的edge内核(奇怪的说法?),但是不支持C++与JS互操作,放弃。electron+自行使用napi封装JUCE: 问题比较大,首先JUC…
浅见:将JS代码注入到第三方CEF应用程序
本文为看雪论坛优秀文章 看雪论坛作者ID:renbohan CEF是Chromium Embedded Framework的缩写,即“Chromium嵌入式框架”,采用c++编写,地位类似于Electron,是web开发应用程序的重要框架,被许多软件包括微信、网易云、生死狙击等采用,是一款十分优秀的嵌入式框架。 由于一些原因,需要把js注入到某款使用CEF的应用中,通过js代码与应用web进行一些交互,于是乎研究了一下CEF这个框架,并分享注入js代码到第三方CEF应用的一些…
Relesor桌面软件发布工具介绍
[图片] 首页-Relesor软件发布专家 比Electron小10倍 简述Relesor为Web前端开发人员和C++开发人员提供一站式打包发布工具。 模块提供客户端必须的启动程序、安装程序、更新程序、卸载程序、运行时库(DLL)。 功能提供生成、校验、压缩、签名、打包、上传等。 内容提供默认界面包、演示程序、云存贮空间、Web开发JS接口和示例、C++开发接口和示例。 优势明显,傻瓜式操作,设置参数就OK! 体积小,制作发布的安装包约为Electron体积的10…
使用CEF(四)— 在QT中集成CEF(1)基本集成
QT作为C++下著名的跨平台软件开发框架,实现了一套代码可以在所有的操作系统、平台和屏幕类型上部署。我们前几篇文章讲解了如何构建一款基于CEF的简单的样例,但这些样例的GUI都是使用的原生的或者是控件功能不强大的CEF视图框架。本文将会重新开始,使用VS2019编写一款基于QT的并嵌入原生窗体的文章。 环境搭建在本文中,我没有使用QtCreator进行项目搭建的工作,而是使用VS配合QT VS Tools类来完成项目的环境。在本文,假设你…