HTML打包EXE使用附件功能调用外部程序扩展你的EXE - 附实战演练实现录频功能

HTML打包EXE工具支持附件文件 功能,可以将额外的文件或文件夹与HTML项目一起打包进EXE。打包后的附件会和EXE放在同一目录下,运行时可以直接访问。配合 HTMLPackHelper.open() API,可以实现从HTML页面中启动外部程序的功能。

本文通过一个实际案例------将开源截图录屏工具 ScreenToGif 打包进EXE,点击按钮即可启动,来完整演示附件文件功能的使用方法。

下载最新版本

功能入口

在打包工具快速打包 标签页中,可以找到附件文件配置项:

点击配置附件按钮,会弹出附件管理对话框。

附件管理对话框

在对话框中可以进行以下操作:

  • 添加文件:选择一个或多个文件作为附件
  • 添加文件夹:选择整个文件夹作为附件(文件夹内所有内容都会被打包)
  • 移除:删除不需要的附件项
  • 清空:一键清除所有附件

对话框中会显示每个附件的类型标记:

  • 🔵 文件:单个文件
  • 🟠 文件夹:整个目录
  • 🔴 不存在:文件路径无效(打包时会跳过)

附件文件的存放位置

打包后,附件文件会被放到与EXE同级的目录下。例如:

复制代码
MyApp/
├── MyApp.exe
├── ScreenToGif.exe      ← 附件文件
├── tools/               ← 附件文件夹
│   ├── tool1.exe
│   └── tool2.bat
└── ...(其他打包生成的文件)

如果选择的是安装版EXE ,附件文件会被包含在安装包中,安装后同样位于应用安装目录下。

如果选择的是绿色版EXE, 附件文件会被嵌入到EXE里面, 可以使用相对于EXE的路径去获取.

实战演示:集成 ScreenToGif 截图录屏工具

关于 ScreenToGif

ScreenToGif是一款开源免费的屏幕录制工具(MIT 协议),支持:

  • 屏幕录制并导出为 GIF/视频
  • 区域截图
  • 内置编辑器,可添加文字、边框等

它是一个单文件便携版EXE(约几MB),非常适合作为附件打包。

第一步:准备HTML文件

创建一个 index.html 文件,包含一个启动 ScreenToGif 的按钮:

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8" />
        <title>我的工具箱</title>
        <style>
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }
            body {
                font-family: 'Microsoft YaHei', 'Segoe UI', sans-serif;
                background: #f0f2f5;
                min-height: 100vh;
                padding: 40px 20px;
            }
            .header {
                text-align: center;
                margin-bottom: 30px;
            }
            .header h1 {
                font-size: 22px;
                color: #333;
                font-weight: 600;
            }
            .header p {
                color: #999;
                font-size: 13px;
                margin-top: 6px;
            }
            .tool-list {
                max-width: 480px;
                margin: 0 auto;
            }
            .tool-item {
                background: #fff;
                border: 1px solid #e8e8e8;
                border-radius: 8px;
                padding: 16px 20px;
                margin-bottom: 12px;
                display: flex;
                align-items: center;
                justify-content: space-between;
            }
            .tool-info {
                display: flex;
                align-items: center;
                gap: 12px;
            }
            .tool-icon {
                width: 40px;
                height: 40px;
                background: #e6f7ff;
                border-radius: 8px;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 20px;
                flex-shrink: 0;
            }
            .tool-name {
                font-size: 15px;
                font-weight: 500;
                color: #333;
            }
            .tool-desc {
                font-size: 12px;
                color: #999;
                margin-top: 2px;
            }
            .btn-open {
                background: #1890ff;
                color: #fff;
                border: none;
                border-radius: 4px;
                padding: 6px 16px;
                font-size: 13px;
                cursor: pointer;
                white-space: nowrap;
                flex-shrink: 0;
            }
            .btn-open:hover {
                background: #40a9ff;
            }
        </style>
    </head>
    <body>
        <div class="header">
            <h1>我的工具箱</h1>
            <p>点击"打开"按钮即可启动对应工具</p>
        </div>
        <div class="tool-list">
            <div class="tool-item">
                <div class="tool-info">
                    <div class="tool-icon">🎬</div>
                    <div>
                        <div class="tool-name">ScreenToGif</div>
                        <div class="tool-desc">屏幕录制工具,支持录屏、截图、GIF导出</div>
                    </div>
                </div>
                <button class="btn-open" onclick="openTool('ScreenToGif.exe')">打开</button>
            </div>
        </div>

        <script>
            function openTool(fileName) {
                if (window.HTMLPackHelper) {
                    window.HTMLPackHelper.open(fileName);
                } else {
                    alert('请在打包后的EXE中运行,当前环境不支持此功能');
                }
            }
        </script>
    </body>
</html>

核心代码只有一行:

js 复制代码
window.HTMLPackHelper.open('ScreenToGif.exe');

第二步:打包配置

  1. 打开HTML打包EXE工具
  2. 本地html主文件 :选择上面创建的 index.html
  3. 附件文件 :点击配置附件添加文件 → 选择下载好的 ScreenToGif.exe
  4. 高级配置 中勾选启用API (必须开启,否则 HTMLPackHelper 不可用)
  1. 点击打包,选择保存位置

第三步:运行效果

打包完成后,运行生成的EXE:

  1. 程序启动后显示工具箱界面
  1. 点击启动 ScreenToGif 按钮
  2. ScreenToGif 程序被成功启动

open API 说明

HTMLPackHelper.open(itemPath) 用于打开一个文件或启动一个程序。

路径规则

路径类型 示例 说明
相对路径 "ScreenToGif.exe" 相对于EXE所在目录
相对路径(子目录) "tools/mytool.exe" EXE所在目录下的子目录
绝对路径 "C:\\Windows\\notepad.exe" 直接使用绝对路径

大多数情况下使用相对路径即可,因为附件文件打包后就在EXE同级目录下。

前置条件

使用 HTMLPackHelper.open() 需要在打包时勾选启用API 选项(位于高级配置标签页)。如果未开启API,window.HTMLPackHelper 将为 undefined

建议在调用前做一下判断:

js 复制代码
if (window.HTMLPackHelper) {
    window.HTMLPackHelper.open('ScreenToGif.exe');
} else {
    alert('当前环境不支持此功能');
}

不仅可以打开EXE

open API 本质上调用的是系统的默认打开方式,因此不限于EXE文件:

js 复制代码
// 打开一个附件PDF文档
window.HTMLPackHelper.open('使用手册.pdf');

// 打开一个附件文件夹
window.HTMLPackHelper.open('data');

// 打开一个附件图片
window.HTMLPackHelper.open('help.png');

注意事项

  1. 启用API :使用 HTMLPackHelper.open() 前必须在高级配置中勾选启用API
  2. 文件体积:附件文件会增加打包后的EXE体积,建议使用便携版/单文件版工具
  3. 路径中的空格:如果文件名包含空格,直接传入即可,不需要额外处理
  4. 安装版EXE:附件文件同样会被包含在安装包中,安装后位于安装目录下
  5. 杀毒软件:部分杀毒软件可能对打包的EXE中包含其他EXE文件产生误报,建议发布前测试

相关阅读

相关推荐
iReachers1 天前
HTML打包EXE安装包配置教程 - 自定义安装目录和桌面快捷方式名
html打包exe·安装包配置·安装版exe
iReachers2 天前
HTML打包/EXE加密的一机一码网络验证常见问题汇总
常见问题·一机一码·网络验证·html打包exe·exe加密
iReachers3 天前
HTML打包EXE透明窗口教程 - 打造炫酷无边框透明桌面应用
无边框窗口·html打包exe·透明窗口
iReachers6 天前
HTML打包EXE工具启动图设置 - 为打包程序添加启动画面
html转exe·html打包exe·exe打包·启动图·启动画面
iReachers7 天前
HTML打包EXE网络验证管理后台使用指南 - 激活码生成、管理与日志查看
管理后台·网络验证·html打包exe·激活码管理
iReachers13 天前
HTML打包EXE工具四种弹窗方式图文详解 - 单窗口/新窗口/标签页/浏览器打开
前端·javascript·html·弹窗·html打包exe·html转程序
iReachers14 天前
HTML打包EXE工具标签页模式详解 - 像浏览器一样管理多个页面
打包工具·窗口模式·html打包exe·标签页模式·web 应用
iReachers14 天前
HTML打包EXE三种加密方式对比:静态密码、离线一机一码、网络验证
html·html转exe·html打包exe·html一键打包exe工具