44 Star 247 Fork 66

渣渣 / easy-window

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

easy-window是什么?

easy-window 是一个旨在简化桌面开发难度的通用窗体,它可以让你使用当前主流的HTML5技术快速地创建Windows桌面应用程序。创作桌面应用,不需要掌握QT,C++,C#,Java那些繁琐的东西,只要会创建网页就可以。 相较于NW.jsElectron,使用方式更加简洁,体积更小(只有几M)。

软件界面可以有多绚,就看想象力了。闲话不多说,先来看看本工具可以创建哪些窗体应用吧。

应用示例

  1. 简单窗体 image image
  2. 设置窗体图标和标题 image
  3. 限制窗体宽高 image
  4. 隐藏最大化最小化按钮 image
  5. 无边框窗体 image image image
  6. 不规则窗体 image image

使用方法

如果要运行示例程序,只需下载easy-window.exe文件,samples文件夹和后缀名为.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设置窗口标题为百度首页,运行效果如下图: image 当然,vbs文件不是必须的,可以直接在cmd控制台中运行easy-window.exe -url https://www.baidu.com -title 百度首页,效果是一样的。 更多启动参数用法请参考下方参数说明

除了启动参数配置窗体样式的方式外,还支持配置文件的方式。可以直接运行easy-window.exe,如果同级目录内不存在config.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.即可。 使用示例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
<body>
	<button onclick="loadFile()">打开文件</button>
	<script>
		function loadFile(){
			//选择文件
			var filePath = external.openFile('所有文件|*.*|文本文件(.txt)|*.txt|');
			//读取并显示文件
			external.alert(external.readFile(filePath), '您选择的文件内容如下');
		}
	</script>
</body>
</html>

运行效果

image image 可以看到,调用external.openFile()打开了文件选择窗口,选择文件之后,该函数返回了选择的文件路径。external.readFile()则实现了本地文件的读取。 更多函数请参见下方函数说明。

函数 说明
hitCaption() 主要用于绑定鼠标拖动窗体。比如,在无边框或者不规则窗体中,对指定html元素绑定该函数即可实现鼠标拖动该元素的功能,示例:<img src="images/ecology-heart.png" onmousedown="external.hitCaption()">,详情参见不规则窗体示例
hitMax() 最大化窗体
hitMin() 最小化窗体
close() 关闭窗体
alert(text, title) 提示框,text:提示内容,title:提示窗口标题
openFile(fileType, title) 打开文件,fileType:文件类型(所有文件|*.*|文本文件|*.txt|), title:选择文件窗口标题。参数均非必填
openDir(dir, subTitle, title) 打开目录,dir:初始目录, subTitle:子标题, title:标题。参数均非必填
saveFile(fileType, title) 保存文件,fileType:文件类型(所有文件|*.*|文本文件|*.txt|), title:窗口标题。参数均非必填
readFile(path) 读取文件,path:文件路径
writeFile(path, text) 写文件,path: 文件路径, text:文件内容
clipRead() 读取剪贴板内容
clipWrite(text) 将内容写入剪贴板,text:文本内容
getMousePos() 获取鼠标位置
getPos() 获取窗体位置
setPos(x,y,width,height) 设置窗体位置和大小,x:横坐标,y:纵坐标,width:宽度,height:高度。宽高参数可选
getScreen() 获取屏幕宽高
setIcon(iconPath) 设置窗体图标
setTitle(text) 设置窗体标题
setTopmost(state) 窗体是否置顶,state:true/false
shell(cmd, showCmdWindow, waitResult) 执行系统命令, cmd: 命令语句,showCmdWindow: 是否显示cmd窗体,waitResult: 是否等待命令执行完成并获取执行结果。示例:var ip = external.shell('ipconfig /all', false, true); external.alert(ip);

备注

本项目主要目的在于简化桌面窗体开发,本身功能有限。如果需要更多功能,有两种方案:

  1. 用户界面使用miniblink(精简浏览器内核)做渲染,浏览器支持的大部分功能基本都支持,所以可以通过Ajax或者Websocket与其它服务器语言通信,更多功能由其他语言实现,其实就是用开发网站那一套开发桌面软件。
  2. 本项目使用aardio语言开发,您可以自行修改编译源码,然后打包,替换本项目的easy-window.exe即可。

如果你对本项目感兴趣,欢迎使用,共同探讨完善。

项目引用

  1. aardio 地址 http://www.aardio.com/

  2. miniblink 地址 https://weolar.github.io/miniblink/

MIT License Copyright (c) 2018 lixk Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

HTML5桌面应用程序开发通用工具 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
HTML
1
https://gitee.com/zha2/easy-window.git
git@gitee.com:zha2/easy-window.git
zha2
easy-window
easy-window
master

搜索帮助

14c37bed 8189591 565d56ea 8189591