开发一个自定义“套壳“浏览器的开源方案--TlC_Browser

2023-11-05

目录

一.项目概述

二.技术选型

三.项目介绍

项目名称:TlC_Browser

开发语言:VB6

浏览器内核:webview2

项目目的:在vb6调用h5,实现自定义的浏览器

参考资料:

https://github.com/sysdzw/WebView2DemoForVb6

https://www.vbforums.com/showthread.php?889202-VB6-WebView2-Binding-(Edge-Chromium)

说明:此项目并非浏览器内核,而是在内核上层编写


一.项目概述

        历经100小时我重写了我的上个项目(TLC_BROWSER),与上次相比,UI被整体美化,重写了应用层的底层的机制,此浏览器属TLC_NLP机器人的附属产品,旨在帮助机器人实现网络搜索和读取的功能,开源的版本属于通用版(常规PC可以使用的版本)。

        当前版本可过杀毒软件,且可防部分流氓软件篡改主页。

目前版本号为TLC_browser 0.0.3.5

此版本属于测试版本,修复了部分问题,可能存在其他问题
窗体:0.0.0.23  内核:1.0.0.79
时间:2023年5月18日14:31:13
1.修复了设置面板点击×后,窗体"乱跑"的问题
2.修复了设置面板点击保存后没有任何提示,设置窗体没有消失的问题
3.增加了部分按钮的交互性
4.修复了偶现的崩溃报错
5.增加了让网页具有焦点后自动置前的特性
6.修复了关闭标签后偶现的崩溃
7.添加了对file协议的支持(软件输入框输入后即可)
8.添加了双击全选搜索框的特性
9.修复了其他已知问题

此版本可以通过设置中心使用其他搜索引擎和初始化页

 同样的此版本也仍然支持多标签 


二.技术选型

        目前使用 VB6 调用 Internet Explorer (IE) Frame (ieframe.dll) 的内置 DLL,可以最方便地帮助 VB6 实现在启动 VB6 窗体时显示网页的功能。但是,此方案只能调用 IE 7,不能支持 HTML5,如果遇到 HTML5 网页,则只能通过修改注册表来让 IE 控制调用 IE 11,但即使使用了 IE 11,仍然存在许多不兼容的网页。因此,使用内置 IEFrame.dll 写套壳浏览器的方案在这里并不可行。

        其他可以使用的方案就只有通过webdriver来调用浏览器和此项目使用的webview2 runtime,这是一个控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)的运行库,可参考官方文档可参考链接:Microsoft Edge WebView2 简介 - Microsoft Edge Development | Microsoft LearnWebView2 - Microsoft Edge Developer


三.项目介绍

1.项目地址

开源地址:​​​​​​https​​​​​​://github.com/keyxh/TLC_Browers

CSDN站内安装包下载地址:https://download.csdn.net/download/m0_60277871/87796363 

2.项目目介绍:

kernel:控制webview2内核的代码。默认编译名字为TLC_browser.exe

client:主程序代码,使用winsock发送信息,控制kernel,默认编译名字为:kernel.exe

dll:项目依赖的ocx和dll。

release:是可供用户使用版本的正式包。

TLC_browser.exe是主程序,作为server的角色,端口号为:8329,打开主程序会自动启动kernel.exe并读取配置文件,路径为:%appdata%\tlc_web\config.config

kernel.exe作为client的角色,启动后会connect TLC_Browser,发送自身窗体的hwnd,让TLC_Browser设置为子窗体。

3.项目部署:

用户部署:
打开release中的任意版本下载(0.0.3之前的版本跨进程信息传递均采用共享文件,存在很多问题,目前不再维护,0.0.3后版本采用TCP协议传输),然后运行即可(在安装过程中可能出现部分杀毒软件拦截,放行后即可)。

开发部署:

(1).clone整个项目,打开dll文件夹将RC6.DLL,Windows_FormApi.dll,mathv3.dll,file_controlv2.dll,MSWINSCK.OCX进行注册(regsvr32.dll xxx.dll/xxx.ocx),并手动运行runtime_install.exe,以上涉及的dll将在整理后开源

(2).以上步骤也可以随机安装release中0.0.3以上版本跳过

(3).打开kernel和Client文件夹中的vbp即可修改(注意:加入--init_webview --load_url "首页URL",不建议单独运行


项目后期:

1.接入翻译api,在输入框输入后翻译成其他语言。

2.接入自研发实现的NLP大模型和其他大模型,实现AI web。

3.用web driver更多浏览器内核和让kernel.exe在云端运行,实现云浏览器,让较老的机器也同样能支持h5。

由于webview无法支持win7前的更早版本,此项目目前也只能支持到win7以后版本。

若出现任何问题可发送至github issue或者发送邮箱。


Developed by 福州机电工程职业技术学校 wh

邮箱联系方式:xiaohui032901@foxmail.com

qq联系方式:2151335401、3135144152

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

开发一个自定义“套壳“浏览器的开源方案--TlC_Browser 的相关文章

  • 循环遍历元素并逐步为每个元素应用 CSS 规则

    我有一个网格布局 每个网格布局中都有不同数量的元素 我想动态添加内联grid column通过循环遍历 div 中存在的每个元素的 CSS 规则 ul 与一类 list 所以 HTML 代码的输出需要是 ul class list ul u
  • 扩展位置绝对div超出溢出隐藏div

    我已经好几个月没有做过CSS了 所以我可能会错过一些简单的东西 但无论解决方案是什么 我都无法弄清楚 所以问题就在这里 这是我的代码的简化版本 div style height 100 width 200px div style margi
  • 如何在 VS 中键入时显示方法的完整文档?

    标题非常具有描述性 是否有任何扩展可以让我看到我正在输入的方法的完整文档 我想查看文档 因为我可以在对象浏览器中看到它 其中包含参数的描述和所有内容 而不仅仅是一些 摘要 当然可以选择查看所有覆盖 它可能是智能感知的一部分 或者我不知道它并
  • 即使在包裹后也具有等宽的弹性项目

    是否可以制作一个像这样的纯 CSS 解决方案 物品有一些min width 它们应该动态增长以填充所有容器宽度 然后换行到新行 列表中的所有项目都应具有相同的宽度 现在看起来是这样的 这就是我希望它看起来像的样子 我已经手动管理这些底部项目
  • HTML 元素的默认背景颜色是什么?白色还是透明?

    我只是被一个简单的问题困住了 想弄清楚 HTML 元素的默认背景颜色是什么 是白色的还是透明的 默认背景颜色是透明的 看这里 https developer mozilla org en docs Web CSS background co
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • HTML 输入 - 名称与 ID [重复]

    这个问题在这里已经有答案了 使用 HTML 时
  • 如何使用Python保存“完整的网页”而不仅仅是基本的html

    我正在使用以下代码来使用 Python 保存网页 import urllib import sys from bs4 import BeautifulSoup url http www vodafone de privat tarife r
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu
  • 如何向 CSS 形状添加偏移轮廓?

    我在创建带有斜角边缘的块时遇到了一些问题 此外我需要一个斜角的边框并稍微偏离主块 问题是这个块可以根据屏幕响应 不知道具体的方法 希望大家帮忙 这就是我现在所做的 box display flex padding 20px height 2
  • 我应该使用哪种文档类型?

    如果我想使用可定制的 div 我应该使用哪种文档类型 具有div动画 图像移动 设置div不透明度等 我尝试通过 javascript 创建一个 div 设置其背景颜色 位置 宽度和高度 并向其添加 onmouseover 事件 一切正常
  • HTML:如何强制链接在新选项卡而不是新窗口中打开[重复]

    这个问题在这里已经有答案了 I use target blank 在新选项卡中打开链接 但在 IE 中它会打开一个新窗口 这是完全合乎逻辑的 因为这就是 blank应该做的 我不知道如何target blank 在其他浏览器中的行为 有什么
  • 为什么我的反应路由器链接将我带到页面中间?

    我的网站上有很多链接 但只有一个可以执行此操作 它没有将我带到导航栏的顶部 而是转到内容的中间 知道为什么会这样吗 这是一个页面 其中有一个 map经历一些JSON 这是渲染div页面下方的文本元素 如果重要的话 这是一些可能相关的代码 路
  • Angular UI select:从远程服务获取数据

    我正在使用角度用户界面选择 https github com angular ui ui select https github com angular ui ui select 我查看了演示的可用位置这个笨蛋 http plnkr co
  • 如何在 select 和 option 标签中添加 JSON 数据?

    我有这个html代码 div class searchfilter div class searchwrapper div div
  • 如果没有 /// 标签,TypeScript 的“将 JavaScript 输出合并到文件中”选项无法推断出正确的脚本顺序

    我正在开发一个使用 将 JavaScript 输出合并到文件中 选项的 TypeScript 解决方案 我经常引用另一个文件中定义的项目 例如 In MyBaseClass ts export class MyBaseClass In My
  • 如何使跨度标签不可删除?

    我正在尝试使 contenteditable div 内的跨度标记不可删除 div Editable span Read Only span div 只读范围确实是只读的 但我可以通过单击删除键来删除整个范围 有没有一种属性方法可以告诉sp
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • Visual Studio,应用程序设置...重新排列

    愚蠢的问题 纯粹是审美 鉴于上面的图片 如何上移 下移值 例如 状态 属于 高度 宽度 顶部 左侧 窗口位置 状态 分组 这不是我后来添加东西但慢慢变得混乱的唯一项目 可以删除 重新添加 但这会变得乏味且容易出错 可以保留原样 但这只是一个

随机推荐

  • Zotero win10/mac/iPad三台设备同步

    刚入坑Zotero 发现同步功能很强大 刚好手上有三台设备 就试着捣鼓了下 最终结果不错 记录一下 参考来源 https sspai com post 64283 少数派 用 Zotero 坚果云搞定多设备文献管理 https blog c
  • 虚拟机中linux_server搭建

    linux server environment 1 Installation in vmware workstation 1 1 steps 略 普通的虚拟机系统安装模式 2 linux 中存储设备的使用 linux 中所有存储设备都是通
  • 华为云服务器无法ssh连接&&可以公网ip访问

    基本是SSH服务没有打开的原因 在华为的配置里面默认打开了22号端口 但是需要修改ssh配置文件 首先从华为云服务管理界面远程登录进去 然后会看到 然后登陆之后修改ssh的配置文件 sudo vi etc ssh sshd config 将
  • Scrapy 爬虫完整案例—从小白到大神(银行网点信息为例)

    采用selenium界面抓取信息 需要渲染界面 并且也是单线程操作 效率极低 一晚上只爬去了一个工行的数据 突然想到了分布式爬虫 安装 Scrapy pip版本过于老旧不能使用 需要升级pip版本 输入python m pip instal
  • OpenCV学习三十三:pointPolygonTest 检测点是否在轮廓内

    opencv函数 pointPolygonTest C double pointPolygonTest InputArray contour Point2f pt bool measureDist 用于测试一个点是否在多边形中 当measu
  • 云计算知识点

    一 理解云计算 一 云计算的基本概念 1 定义 云计算是以服务的形式 按需向用户提供计算资源的一种模式 它是分布式计算的一种特殊形式 引入了效用模型来远程供给可扩展和可测量的资源 2 基本要点 提供IT资源 包括计算 存储以及网络资源 提供
  • 用MATLAB实现雅克比迭代、高斯-赛德尔迭代以及超松弛迭代

    文章目录 前言 一 解线性方程组的方法 二 解线性方程组的迭代法及其代码实现 1 迭代法的收敛性 2 基本参数设置 3 雅克比 Jacobi 迭代 4 高斯 塞德尔 Gauss Seidel 迭代 5 超松弛 SOR 迭代 总结 前言 近期
  • 在opencv3中的机器学习算法

    在opencv3 0中 提供了一个ml cpp的文件 这里面全是机器学习的算法 共提供了这么几种 1 正态贝叶斯 normal Bayessian classifier 我已在另外一篇博文中介绍过 在opencv3中实现机器学习之 利用正态
  • 线性回归实现人脸识别——ORL数据集

    今天写一个比较简单的机器学习例子 使用线性回归实现人脸识别 使用的数据集是ORL数据集 算法描述 输入 图片矩阵img 标签信息label 测试图片test 对每一个类 第一步 从图片矩阵中读出来一类图片 划分为训练集 X 与测试集 y 第
  • 求 1-10 的奇数之积,偶数之和。

    i 1 even sum 0 偶数 odd sum 0 奇数 while i lt 10 循环10次 if i 2 0 even sum even sum i else odd sum odd sum i i 1 print 1 10偶数之
  • React-从0到1搭建一个React项目(一)

    文章目录 架构介绍 第三方组件库 项目准备 环境准备 使用create react app初始化项目 创建项目目录结构 安装第三方库 利用工作之余的时间学习了react 今年一回来 部门要在公众号上面开发一个积分商城 于是准备让我用reac
  • 嵌入式Linux设置开机自动运行程序(基于BusyBox init)

    文章目录 目的 BusyBox init启动流程 inittab rcS 和 rcK 设置开机自动运行程序 总结 目的 开机自动运行程序 或者说系统启动时自动运行程序 这是经常会需要用到的功能 这个功能通常依托于 init 程序实现 ini
  • Log4Net记录日志级别

    level 中的级别 表示记录那些情况下的日志
  • 安装Catia显示无法启动服务器,win10catia r20应用程序无法正常启动的解决办法

    catia r20是一款用于模具设计的专业软件 能够给用户提供十分完善的建模技术 但近日有用户却反映说自己的win10正式版电脑出现了catia r20无法正常启动的情况 那我们要怎么解决这一问题呢 下面小编就来为大家分享关于win10ca
  • spring cloud系列学习(十一、额外篇-建多模块项目-maven的聚合和继承)

    一个项目有很多模块 每个模块都会用到一些公共的依赖 这些公共的依赖若交由各个模块独自管理 若每个模块同一个依赖的版本号不一致 会造成很比问题 打包和开发测试环境下对同一jar包不同版本号的处理可能不一致 造成运行时和测试时结果不一致项目升级
  • Retrofit 接收字符串

    在Retrofit1 9中 GsonConverter是默认包含在包里面的并且会在RestAdapter创建的时候自动创建 结果就是 如果返回的是Json字符串将会自动地被转换为数据存取对象Data Access Object DAO 但是
  • Android 屏幕适配方案

    http blog csdn net lmj623565791 article details 45460089
  • 【元宇宙】临界质量,元宇宙的关键要素

    考虑到电气化和移动技术的普及过程 我们可以自信地说 元宇宙不会突然到来 同时 也不会有明确的 元宇宙之前 beforeMetaverse 和 元宇宙之后 afterMetaverse 阶段一它们只是对应着生活发生改变的历史时期 一些高管认为
  • 面向对象----类变量小坑

    先看一段代码 class A name a def init self pass a A print a name print 10 b A b name b print b name print a name print 10 c A c
  • 开发一个自定义“套壳“浏览器的开源方案--TlC_Browser

    目录 一 项目概述 二 技术选型 三 项目介绍 项目名称 TlC Browser 开发语言 VB6 浏览器内核 webview2 项目目的 在vb6调用h5 实现自定义的浏览器 参考资料 https github com sysdzw We