HTML转EXE工具(HTML App Build)最新版

news2024/12/27 1:47:22

HTML转EXE工具(HTM2EXE)最初发布于2022-08-17。可以将Web前端转换成Windows32或者64的EXE执行程序。当时由于时间紧,未能进行优化,特别是浏览器采用的是IE内核,所以使用起来会有一些兼容性问题,当时就记录了需要改进的地方是争取使用谷歌的Chromium浏览器,今天时机已经成熟,新版本已经改成微软的WebView2(Chromium) 内核。而且使用的是长青版WebView2,微软会自动升级,就不会存在兼容性问题。

一、新版本功能及改进(红色新版改进):

序号

功能及改进列表

1

可以将Web前端转换成Windows32或者64的EXE执行程序

2

所有的HTML或者javascript或者css程序都不会在电脑磁盘中出现

3

使用最新WebView2(Chromium) 内核

4

优化右键上下文菜单,禁用获取代码等菜单

5

工具及生成的EXE程序都支持4K显示(H_DPI)及普通显示

6

生成的EXE文件进行了压缩,比原来版本大小缩减超过50%

7

支持程序图标自定义

8

支持程序标题自定义

9

支持设置程序版本以及产品名称

10

支持设置程序置顶

11

支持设置程序不可更改界面大小

12

支持设置程序只运行一个实例

二、支持平台:

  • Windows 11

  • Windows 10

  • Windows 10 IoT 企业版 LTSC x32 2019

  • Windows 10 IoT 企业版 LTSC x64 2019

  • Windows 10 IoT 企业版 21h1 x64

  • Windows Server 2022

  • Windows Server 2019

  • Windows Server 2016

WebView2 运行时版本 109 是支持以下 Windows 版本的最终版本。 WebView2 运行时和 SDK 版本 110.0.1519.0 及更高版本不支持这些操作系统。

  • Windows 8/8.1

  • Windows 7

  • Windows Server 2012 R2

  • Windows Server 2012

  • Windows Server 2008 R2

三、操作说明(只需3步):

第一步:选择Web项目的根目录;

Web项目总有根目录,一般index.html就位于根目录,选择这个目录就可以。选择的方式有两种,一种是通过文件夹选择,一种是拖动文件夹到程序窗口中。

  1. 通过文件夹选择:只能选择包含Web项目根目录的文件夹

双击编辑框也会弹出选择Web更目录的选择框。

  1. 拖动文件夹到程序窗口:可以拖动包含Web项目根目录的文件夹或者index.html文件

在Windows的文件管理器中,鼠标按下Web项目的根文件夹或者index.html文件,直接拖到到程序窗口上。

以上两种方式,无论哪种方式选择之后,系统都会自动在根目录下(包括任何子目录)中查找index.html文件,如果没有找到,就说明这不是Web项目目录,程序就不会接收这个目录,否则就选择成功。

例如常见的vue目录:

对于上述目录,其包含的css、image、img、js等目录会自动打包到程序中(包括目录内的所有文件及子目录),文件favicon.ico、index.html、SZHN_Core.js、version.txt等也会打包到到程序中。但是当前目录的上一级目录都不会涉及,因此如果html或者js文件中引用有上一级目录中文件的,都会出现找不到文件的错误。所以开发Web的时候,需要注意Web文件根目录的设置!如果出现这种情况,就把上一级目录设置成Web项目的根目录。

第二步:设置生成的程序参数属性;

icon:设置程序的图标,需要提供一个ico文件;在windows文件夹中可以直接拖动.ico文件到程序窗口,这样就不需要选择文件。

Caption: 程序的标题,窗口标题,如果不设置则使用默认标题

Version: 版本信息,最终生成的程序的版本;

ProductionName:程序名称,在查看程序的属性时可以看到;

One instance:表示程序只能启动一个实例,不能同时运行多个;

BorderStyle Sizeable:程序是否可以鼠标扩大缩小;

StayOnTop:程序是否始终置顶,如果置顶,其他程序将不能覆盖(除非正在显示帮助信息);

init Width (init Height):生成程序的原始窗口大小,默认1280X960;

Win32\Win64:选择生成的是Win32程序还是Win64程序;

Build EXE as:设置生成的EXE文件名称;

Run immediately after a successful generation:生成完成后是否立即运行;

第三步:构建EXE程序;

按下Build键,立即进行构建!

四、关于Web项目目录说明

对于正常的Web项目,举例vue项目(其它框架项目类似),一般目录结构如下:

如果选择或者拖动文件夹就选择 dist 是最佳的。当然如果选择 vue文件夹设置选择VUE2文件夹都可以的,只是这样就会把他们下面可能包含的一些与项目无关的文件夹也打包,这样就不是我们期望的。如果直接拖动index.html也是没有问题的。

如果没有使用框架的Web项目,确认选择到了根目录即可!

五、常见问题:

  1. 生成程序在windows 7中运行后出现如下界面:

这是因为windows 7没有安装微软的WebView2长青版库,可以尝试下载并安装,如果不能正常下载,请手工到如下地址下载并安装即可。

  • 微软官方安装包:X86/X64

安装成功后,在控制面板中可以看到如下安装程序即算成功:

  1. 有网友反应说只能显示HTML,不能使用js或者css

原因是在开发Web引用的时候,所有文件都不能是index.html文件所在目录的上级目录,这样系统打包的时候就无法打包到,所以就无法访问。一般情况下,不会出现这种情况,但是有些应用可能存在这样的目录结构,这就需要先调整好原来的Web目录,才能将HTML转换成EXE文件。

检查目录是否合适的最简单办法,就是如果放到网站上能访问,本程序就能生成EXE文件。

六、下载链接:

  1. HTML2EXE.exe (正在上传中...
  1. 源程序(联系作者)

七、本程序那些知识点:

序号

知识点

说明

1

EXE程序附加信息

如何正确在一个EXE文件中添加自定义信息

2

动态压缩文件夹

如何在Delphi程序中动态压缩,解压缩文件夹

3

实现WebServer

在Delphi中实现WebServer功能

4

动态更改EXE资源

如何自定义实现更改EXE的资源信息,包括版本信息等

5

自动加载WebView2

Delphi中实现动态加载浏览器核心WebView2(Chromium

6

实现WebView2自定义菜单

实现浏览器右键上下文菜单自定义

7

自定义光标

动态实现自定义光标显示

8

TTask线程运行

通过TTask实现线程运行,并与主进程同步

9

程序单进程

完美通过delphi实现程序单进程,如果第二次启动,则自动打开前一次的进程

10

Log信息彩色显示

通过RichEdit实现Logo信息彩色显示并自动滚动

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

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

相关文章

万字长文讲述由ChatGPT反思大语言模型的技术精要

文|张俊林 源|知乎张俊林 导读:ChatGPT出现后惊喜或惊醒了很多人。惊喜是因为没想到大型语言模型(LLM,Large Language Model)效果能好成这样;惊醒是顿悟到我们对LLM的认知及发展理念&#xff0c…

机器学习笔记

一 1.类型 有监督:分类、回归 无监督:聚类、降维 2.挑战: 过拟合:泛化能力弱 欠拟合:模型过于简单 二、 1.开发流程 数据收集->数据清洗->特征工程->数据建模 2.选择性能指标: 回归问题 均方根…

node-sass@4.14.1 包含风险, 如何升级依赖至 dart-sass

文章目录需求我上网都查到了哪些信息在 github 看到了 node-sass 依赖的最新版本的列表:关于方案2的失败不同版本的 nodejs 和 node-sass依赖的**适配关系**从何得知替代方案——dart-sass如何安装 dart sass?需求 在做一个基于Node、React的前端项目&a…

这才是打开Java面试的正确方式,金三银四互联网大厂Java面试八股来袭

前言 招聘旺季已经到了,不知道大家是否准备好了,面对金三银四的招聘旺季,如果没有精心准备那笔者认为那是对自己不负责任;就我们 Java 程序员来说,多数的公司总体上面试都是以自我介绍项目介绍项目细节/难点提问基础知…

【LeetCode】剑指 Offer(3)

目录 写在前面: 题目:剑指 Offer 09. 用两个栈实现队列 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 写在前面&…

追光进行时:沿着全光运力的新航道,加速驶向算力时代

2021年,工信部印发《新型数据中心发展三年行动计划(2021—2023年)》,明确指出“用3年时间,形成总体布局持续优化,全国一体化算力网络国家枢纽节点、省内数据中心、边缘数据中心梯次布局”,“算力…

LeetCode230218_148、654. 最大二叉树

给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 最大二叉树…

页面置换算法

页面置换算法 在进程运行过程中,若需要访问的物理块不在内存中,就需要通过一定的方式来将页面载入内存,而此时内存很可能已无空闲空间,因此就需要一定的算法来选择内存中要被置换的页面,这种算法就被称为页面置换算法…

redis容器部署及相关配置文件解释

背景:我们项目上的redis除了几个核心业务的集群部署是用二进制部署的,其他环境基本都是容器部署。所以整理了一下redis容器相关的配置。docker-compose部署的配置version: 3services:redis:image: redis:6.2.5container_name: redisrestart: alwaysports…

springmvc+jsp电影院购票售票选座推荐网站java ssm

本电影购票推荐网站以SSM作为框架,B/S模式以及MySql作为后台运行的数据库。本系统主要包括以下功能模块:个人中心、用户管理、电影信息管理、电影类型管理、影院信息管理、系统管理、订单管理等模块,通过这些模块的实现能够基本满足日常电影购…

mysql 时区设置

方法一:修改 mysql 的配置文件永久设置时区(优点:永久保存设置,缺点:需重启MySQL服务)找到你MySQL的安装目录(如果不记得安装在哪 可以输入show variables like “%char%”; 查看)&a…

第四章SpringBoot之Web开发

文章目录SpringBoot Web开发总览要解决的问题SpringMVC自动配置原理Web开发静态资源处理第一种静态资源处理webjar第二种静态资源映射规则自定义静态资源路径首页处理内容协商视图解析器测试转换器和格式化器修改SpringBoot的默认配置原理分析全面接管SpringMVC关于国际化处理配…

Seata架构篇 - AT模式

AT 模式 概述 Seata AT 模式是一种非侵入式的分布式事务解决方案,Seata 在内部做了对数据库操作的代理层,我们使用 Seata AT 模式时,实际上用的是 Seata 自带的数据源代理 DataSourceProxy,Seata 在这层代理中加入了很多逻辑&am…

Koin入门1-快速上手

概念 Koin 是一款轻量级的依赖注入框架,它无代理,无代码生成,无反射 大家可以自行查阅官方英文教程:https://insert-koin.io/docs/quickstart/android-compose Koin 简单的来说可以包含以下四个模块: 名称作用entity实…

2|数据挖掘|聚类分析|无监督聚类PAM算法(中心法划分)|肠型分析

常见的六大聚类算法https://blog.csdn.net/m0_57656758/article/details/127653402?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167669020916782425666238%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id167669020…

C++ STL——map和set的使用

文章目录1. 关联式容器1.1 键值对1.2 树形结构的关联式容器2. set2.1 set的介绍2.2 set的插入2.3 set的删除和查找2.4 lower_bound和upper_bound3. multiset3.1 count4. map4.1 map的介绍4.2 map的插入4.3 map的遍历4.4 map的[ ]5. multimap1. 关联式容器 我们之前学的vector、…

时序预测 | MATLAB实现CNN-SVM卷积支持向量机时间序列预测

时序预测 | MATLAB实现CNN-SVM卷积支持向量机时间序列预测 目录时序预测 | MATLAB实现CNN-SVM卷积支持向量机时间序列预测预测效果基本介绍研究回顾程序设计参考资料预测效果 基本介绍 CNN-SVM预测模型将深度学习模型作为特征学习器,将SVM 支持向量机 作为训练器进行…

基于分布鲁棒联合机会约束的能源和储备调度(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

2023.2.15工作学习记录 git Docker compose容器编排

关于Git错误提交了target目录 是因为在ignore目录中没有加入biz这个工程 以后提交代码时一定要检查好自己提交的代码 首先把所有的全部取消 然后再根据自己要提交的内容一个个来勾选 Docker网络 container模式:新建的容器和已经存在的一个容器共享一个网络…

【大数据】HADOOP-YARN容量调度器Spark作业实战

目录需求配置多队列的容量调度器验证队列资源需求 default 队列占总内存的40%&#xff0c;最大资源容量占总资源的60% ops 队列占总内存的60%&#xff0c;最大资源容量占总资源的80% 配置多队列的容量调度器 在yarn-site.xml里面配置使用容量调度器 <!-- 使用容量调度器…