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

news2025/1/24 22:48:54

一.项目概述

二.技术选型

三.项目介绍

1.项目地址:​​​​​​https​​​​​​://github.com/keyxh/TLC_Browers

2.项目目录介绍:

3.项目后期


开发语言: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机器人的附属产品,旨在帮助机器人实现网络搜索和读取的功能,开源的版本属于通用版。

目前版本号为TLC_browser 0.0.3
窗体:0.0.21  内核:1.0.0.72
时间:2023年5月13日13:46:46
1.整体优化UI界面,增强美观性
2.修改了底层逻辑,exe间传输信息不再是tcp传输,而是tcp协议
3.修复了kernel不能关闭在后台吃内存的问题
4.添加了帮助窗体,显示更新日志
5.添加设置窗体,可设置引擎、默认宽高、搜索引擎和初始页
6.优化了标签问题
7.添加了下载查看按钮,可唤起chromium的下载界面
8.修复了偶现删除标签卡死问题
9.添加弹出式窗体
10.修复偶现添加标签卡死问题
11.修复删除标签后界面不再显示的问题
12.修复了浏览器搜索框搜索出现重复搜索的问题
13.此次更新为彻底化的修改底层逻辑还修复了啥我也忘了

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

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

 


二.技术选型

        目前使用 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

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.项目后期

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/521516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从 Spring 的创建到 Bean 对象的存储、读取

目录 创建 Spring 项目: 1.创建一个 Maven 项目: 2.添加 Spring 框架支持: 3.配置资源文件: 4.添加启动类: Bean 对象的使用: 1.存储 Bean 对象: 1.1 创建 Bean: 1.2 存储 B…

BUUCTF--reverse1,reverse2--WP

文章目录 一.BUUCTF--reverse1二.BUUCTF--reverse2 一.BUUCTF–reverse1 这道题目也是非常简单,主要考察IDA Pro的使用,分析代码: 发现是64位exe,直接拖到IDA Pro中,发现没有找到主函数: 那就直接ShiftF12…

【操作符详解 2023-05-13】

#include <stdio.h>int main() {int a 1;int b 2;int c (a > b, a b 10, a, b a 1);//逗号表达式printf("%d\n", a);printf("%d\n", b);printf("%d\n", c);return 0; }int main() {int arr[10] { 1,2,3,4,5 };// …

等差数列求和,轻松解决力扣“K 个元素的最大和”问题

本篇博客会讲解力扣“2656. K 个元素的最大和”的解题思路&#xff0c;这是题目链接。 先来审题&#xff1a; 以下是输出示例&#xff1a; 以下是提示&#xff1a; 本题有2种思路&#xff0c;一种是直接按照题目所说的方式模拟&#xff0c;另一种是直接使用数学公式。 显然…

STM32f103时钟树详解

一、概述 stm32有四种时钟信号源&#xff0c;HSE(高速外部时钟)、HSI&#xff08;高速内部时钟&#xff09;、LSE&#xff08;低速外部时钟&#xff09;、LSI&#xff08;低速内部时钟&#xff09;。HSE通常接8M晶振&#xff0c;经由内部分频和倍频&#xff0c;最大可得到72MH…

荔枝派Zero(全志V3S)驱动开发之RGB LED灯

文章目录 前言一、硬件连接二、文件 IO 方式操作 GPIO三、编写驱动四、编写应用程序1、V1 版本&#xff0c;实现蓝灯亮灭2、V2 版本&#xff0c;实现蓝灯闪烁 五、编译六、运行测试七、资源自取方式1&#xff1a;github 链接方式2&#xff1a;百度网盘 前言 一、硬件连接 查看…

绝~ 阿里内部“Java进阶必备宝典”,理论到实战,一键通关

前言 作为一名Java方向的程序员&#xff0c;打好夯实的基础是非常重要的&#xff0c;现在大厂面试对于程序员基础知识的掌握考察也越来越严格&#xff0c;虽然说现在技术更新比较快&#xff0c;但基础扎实才能够更深入的去理解每一个知识技术点。 关于Java程序员如何筑基&…

实现“省市县的联动”

分析&#xff1a;实现这一功能需要发送三次Ajax请求 1.第一次请求&#xff1a;是页面加载完毕之后&#xff0c;发送一次Ajax请求&#xff0c;查询出所有的省级单位&#xff0c;将这些查询结果展示在<select>标签中。 2.第二次请求&#xff1a;当所选省级单位发生变化的时…

java工程构建时带上分支,commit等信息

背景&#xff1a; 线上部署的jar包&#xff08;不管是直接运行jar包&#xff0c;还是通过容器运行的jar&#xff09;有时出现问题时需要查看源代码&#xff0c;需要知道该jar包是从哪个分支、哪个commit、哪个时间打包的。 有了这些信息能更好辅助我们分析判断问题。 这里以gr…

【.NET基础加强第九课--事件】

.NET基础加强第九课--事件 Event 关键字委托,事件对比举例: 音乐播放事件用户对象&#xff0c;登录程序集反射 Event 关键字 委托,事件对比 委托是一种数据类型&#xff0c;可以用调用。 事件:对象&#xff08;对委托的一种封闭装&#xff09;。只能在类内部&#xff0c;只能…

基于Java的企业员工管理系统的设计与实现(论文+源码)_kaic

基于Java的企业员工管理系统的设计与实现 摘 要 随着电子信息的飞速发展&#xff0c;计算机已经融入到了生活的各个方面&#xff0c;越来越多的企业开始使用电子计算机来对企业进行管理&#xff0c;信息化的时代已经到来&#xff0c;各个企业无论大小都需要一个信息化的管理系…

模拟实现qsort函数(采用冒泡排序的方式)

前言&#xff1a; 之前我在C语言&#xff1a;指针详解【进阶】后篇中提到了qsort函数,qsort函数作为一个库函数&#xff0c;在我们日常的代码编写中可能会用到&#xff0c;在上面提到的文章中我们也进行使用了这个函数&#xff0c;大家也了解了一些这个函数的使用方法&#xff…

English Learning - L3 作业打卡 Lesson1 Day4 2023.5.8 周一

English Learning - L3 作业打卡 Lesson1 Day4 2023.5.8 周一 引言&#x1f349;句1: They may say they are red hot about something unfair.成分划分弱读连读爆破语调 &#x1f349;句2: When they are red hot, they are very angry about something.成分划分弱读连读爆破语…

【Ansys】mechanical和fluent求解器中使用的迭代方法-待补充

一、mechanical求解器 这个求解器&#xff0c;在网上很容易查到&#xff0c;迭代求解时用的就是牛顿-拉夫逊方法&#xff08;Newton-Raphson&#xff09;。 这是因为牛顿法求解非线性问题非常优秀。 而mechanical使用这个方法就能实现对几何非线性、材料非线性、接触非线性、…

Java入门和背景知识

文章目录 &#x1f525;常见编程语言介绍&#x1f525;Java 发展史&#x1f525;Java 的核心优势&#x1f525;Java 各版本的含义&#x1f525;Java 的特性和优势&#x1f525;Java 运行机制&#x1f525;JVM、JRE 和 JDK&#x1f525;Java 开发环境搭建&#x1f525;openJDK 和…

网络购物商场系统的设计与实现(论文+源码)_kaic

网络购物商场系统 摘 要 近年来&#xff0c;随着网络购物的兴起和普及&#xff0c;针对该市场需求开发一款在线购物系统是大势所趋。和实体店对比&#xff0c;在线购物系统商品种类齐全&#xff0c;价格优惠、还能够送货上门等优势。在此类系统中&#xff0c;用户能够在网上…

潍坊这一城市商业综合体有奖征名

云创金谷项目商业购物中心名称及IP形象征集开始啦&#xff01;&#xff01;你有什么好想法&#xff1f;快来参与吧&#xff01;&#xff01; 云创金谷&#xff0c;是奎文区重点打造的城市更新代表力作&#xff0c;位于文化路以东、新华路以西&#xff0c;北宫街以北、卧龙东街以…

如何在vue中使用dayjs修改日历组件的星期名称

在vue中使用日历组件Calendar时&#xff0c;头部的星期默认展示为[日, 一, 二, 三, 四, 五, 六]&#xff0c;如下图所示。 如何改变头部的星期展示呢&#xff0c;可以通过以下方法实现&#xff1a; const weekdaysShort [周日, 周一, 周二, 周三, 周四, 周五, 周六]; dayjs.l…

每日学术速递5.10

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.ZipIt! Merging Models from Different Tasks without Training 标题&#xff1a;压缩它&#xff01;无需训练即可合并来自不同任务的模型 作者&#xff1a;George Stoica, Danie…

MLF(中期借贷便利)[Medium-term lending facility],俗称麻辣粉

MLF麻辣粉是什么&#xff1f;简述MLF的作用以及对股市的影响&#xff01;_哔哩哔哩_bilibili 简述 中期借贷便利&#xff08;Medium-term lending facility&#xff0c;简称MLF&#xff09;是中国人民银行提供给商业银行的一种货币政策工具&#xff0c;能够向商业银行提供一…