# easy-window **Repository Path**: zha2/easy-window ## Basic Information - **Project Name**: easy-window - **Description**: HTML5桌面应用程序开发通用工具 - **Primary Language**: HTML - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 270 - **Forks**: 75 - **Created**: 2019-01-16 - **Last Updated**: 2025-04-15 ## Categories & Tags **Categories**: desktop-ui **Tags**: None ## README # easy-window是什么? easy-window 是一个旨在简化桌面开发难度的通用窗体,它可以让你使用当前主流的HTML5技术快速地创建Windows桌面应用程序。创作桌面应用,不需要掌握QT,C++,C#,Java那些繁琐的东西,只要会创建网页就可以。 相较于`NW.js`和`Electron`,使用方式更加简洁,体积更小(只有几M)。 软件界面可以有多绚,就看想象力了。闲话不多说,先来看看本工具可以创建哪些窗体应用吧。 ### 应用示例 1. 简单窗体   2. 设置窗体图标和标题  3. 限制窗体宽高  4. 隐藏最大化最小化按钮  5. 无边框窗体    6. 不规则窗体   --- ### 使用方法 如果要运行示例程序,只需下载`easy-window.exe`文件,`samples`文件夹和后缀名为`.vbs`的文件,运行对应的`vbs`文件即可。可以修改`vbs`文件中对应的参数调整窗体样式。 `vbs`参数示例说明: ```vbs Dim shell Set shell = WScript.CreateObject("WScript.Shell") shell.run "easy-window.exe -url https://www.baidu.com -title 百度首页" ``` 其中`easy-window.exe`是渲染窗体的主程序,`-url`指定了要显示的页面,`-title`设置窗口标题为`百度首页`,运行效果如下图:  当然,`vbs`文件不是必须的,可以直接在cmd控制台中运行`easy-window.exe -url https://www.baidu.com -title 百度首页`,效果是一样的。 更多启动参数用法请参考下方`参数说明`。 除了启动参数配置窗体样式的方式外,还支持配置文件的方式。可以直接运行`easy-window.exe`,如果同级目录内不存在`config.ini`文件,则会在同级目录下自动生成该文件;如果已存在,则会直接读取该配置文件中的属性配置。 配置文件示例: ```ini [window] url=samples/login/index.html title=用户登录 width=640 height=600 resizable=false maxbox=false ``` 然后即可直接运行`easy-window.exe`,此时会自动加载显示`samples/login/index.html`文件。 注意,启动参数配置的优先级高于配置文件,如果同时通过启动参数和配置文件的方式指定了同一个属性,则会优先使用启动参数。 ### 参数说明 bool类型值只能是`true`或者`false` |参数|类型|说明| | :--- | :--- | :--- | |url|string|网页地址,相对地址,绝对地址,远程网址均可| |timeout|int|等待页面加载超时时间。单位:毫秒。如果指定了该参数,窗体会等到渲染完成再一次性显示出来。| |icon|string|窗体图标路径| |title|string|窗体标题| |minbox|bool|最小化窗体按钮,默认值:`true`| |maxbox|bool|最大化窗体按钮,默认值:`true`| |minmax|bool|限定窗口缩放范围,默认值:`false`| |border|bool|窗体是否有边框,默认值:`true`| |resizable|bool|窗体是否可缩放,默认值:`true`| |shadow|bool|窗体边框是否有阴影,默认值:`false`| |posx|int|窗体初始横坐标| |posy|int|窗体初始纵坐标| |width|int|窗体宽度| |height|int|窗体高度| |contextmenu|bool|是否启用鼠标右键菜单,默认值:`true`| |layered|bool|是否是不规则窗体,默认值:`false`| |toolwindow|bool|是否是弹窗工具窗体,默认值:`false`| |topmost|bool|窗体是否置顶,默认值:`false`| ### 内置扩展JS函数 内置扩展JS函数的作用是弥补Javascript在开发桌面应用时,无法调用Windows api的不足。使用这些扩展的JS函数的时候就跟调用原生的JS函数一样方便,只需要在函数前边加上`external.`即可。 使用示例: ```html
``` 运行效果   可以看到,调用`external.openFile()`打开了文件选择窗口,选择文件之后,该函数返回了选择的文件路径。`external.readFile()`则实现了本地文件的读取。 更多函数请参见下方函数说明。 |函数|说明| | :--- | :--- | |hitCaption()|主要用于绑定鼠标拖动窗体。比如,在无边框或者不规则窗体中,对指定html元素绑定该函数即可实现鼠标拖动该元素的功能,示例:`