[预览]WinXShell - 可创建现代风格窗口界面的Windows Shell
本帖最后由 slore 于 2018-11-19 20:59 编辑此自定义界面组件(xml+lua),已经整合到以下帖子中,并且完成了WIFI,声音设置,日历,我的电脑属性,分辨率设置,关机(窗口模式,全屏模式),仿WIN10开始菜单完成了一半,
最新版本请参照该主题。
explorer再见,WinXShell你好
程序效果:
使用方法
WinXShell.exe -ui -jcfg UI_xxxxx\main.jcfg
随着Windows 10的更新,原来越多的设置改为了
新的UI方式,但是目前PE还不支持此类应用。
(开始菜单,设置,网络,声音等)
现在,原来的PExlorer引入了duilib轻量的
DirectUI库,可通过xml格式直接绘制具有现代风格,
andriod等UI的界面了。
因为PExlorer是支持XP以上全部Windows版本,
不限语言,不限制7,8,10大版本,各种测试预览版本的
Shell,且Windows可能以后只有X了,所以将导入
UI库的PExlorer更名WinXShell并分离维护。
(导入UI库,导致体积会增大500KB)
除了界面可以自定义以外,按钮事件之类的,
我也希望大家可以发挥自己创造,所以结合已有
的json配置文件,定义了一套简单语法来完成初始化,
和按钮响应,滑块移动等动作,以及UI元素交互,
修改内容,颜色,大小等。
挺佩服用PECMD写界面的大神,以及PECMD的解析,
界面代码我作为一个码农都看不懂,自己做解析器发现
编译原理都遗忘到大学课堂了,所以定义了的语法是
类汇编的,可以避免括号等嵌套的处理。有机会的话,
会升级解释器,可以识别更高级的写法。
放出预览版是希望大家提案想要的功能,想要的界面交互,
以及UI大神把界面做好我就直接用啦。
代码写了不到3天,关机画面和设定的画面这个例子,
我找ICON,调颜色就花了1天 :(
搜索:duilib 可以看看界面支持什么元素。
基本常用的控件都是有的,虽然我改善了下
xml界面定义的语法,不过元素没有少,应该都可以用。
(JCFG的交互目前只处理了Button,Combo)
TODO:
资源ZIP形式打包
UI_显示设置
* 分辨率 ●
* 屏幕旋转 □
* 亮度设置滑块 □
UI_我的电脑属性
* Windows 版本信息
* CPU
* 机器信息
* 内存
UI_声音设置
* 调节滑块,静音按钮
* 快速启动栏,托盘位置关联
UI_WIFI连接
* WIFI列表
* 密码输入
* 连接实现(外部命令,内部函数)
UI_开始菜单
* 手机风格?
* 文件列表扫描,自动图标配置
* 右键菜单
jcfg代码说明:
代码定义整体不能使用双引号,需要时请使用@q转义,想直接使用@的时候,用 @@。(@后面不是q的话,@可以不转义)
OnLoad配置,主要进行元素初始化。
= #元素名, 值或函数;
值:整数,字符串,TRUE,FALSE
函数: 以()结尾(::开头的为内部函数)。
字符串: '开头,'结尾的字符串。内部需要利用'的话,请使用\s转义,想直接使用\的时候,用 \\。(\后面不是s的话,\可以不转义)
OnClick配置,各个元素点击后调用。
PUSH 值;
将值压入参数栈,供函数使用。
CALL 函数名;
调用函数。
内部函数:
目前实现了
GetResolutionList() - 获取可用分辨率列表;
GetCurrentResolution() - 获取当前分辨率;
SetResolution(多参数) - 设置分辨率;
Close() - 关闭界面;
Command(参数个数, 命令名) - 调用JS_CMD定义的外部程序;
需要参数的函数,第一个参数为参数个数,方便以后功能扩展。
例如:
设置分辨率可,
PUSH 768;
PUSH 1024;
PUSH 2;
CALL ::SetResolution();
也可,
PUSH '1024x768';
PUSH 1;
CALL ::SetResolution();
也可,
PUSH #元素;<-将获取元素的文本内容,格式(宽x高)
PUSH 1;
CALL ::SetResolution();
TODO:
后续可以使用.来具体指定获取和设置的元素属性
#元素.TEXT
#元素.COLOR
#元素.HEIGHT
#元素.xxx
XML界面定义
<Style name="PowerBtn" value="height="40" textcolor="#FF000000" hottextcolor="#FFFFFF" hotimage="color='#FFF48FB1'"" />
<VerticalLayout bkcolor="#FFF9F9F9">
<HorizontalLayout height="32" bkcolor="#FFC2185B">
<Label text="电源" textpadding="5,0,0,0" />
<Control />
<Button name="::closebtn" bkimage="file='close.png'" width="16" height="16" padding="0,8,5,0" />
</HorizontalLayout>
<VerticalLayout height="150" bkcolor="#FFE91E63">
<HorizontalLayout>
<Control />
<VerticalLayout width="128">
<Button normalimage="power.png" height="48" width="48" enabled="false" padding="40,16,0,0" />
<Label text="关闭计算机" font="24" textpadding="0,10,0,0" />
</VerticalLayout>
<Control />
</HorizontalLayout>
</VerticalLayout>
<VerticalLayout>
<Button name="shutdownbtn" text="关机" style="PowerBtn" />
<Button name="restartbtn" text="重启" style="PowerBtn"/>
<Button text="休眠" style="PowerBtn" enabled="false" />
<Button text="待机" style="PowerBtn" enabled="false" />
</VerticalLayout>
</VerticalLayout>
JCFG动作定义
{
"name":"UI_Shutdown",
"baricon":"power.ico",
"OnClick":
{
"shutdownbtn":"
PUSH 'test';
PUSH 1;
CALL ::Command();
CALL ::Close();
",
"restartbtn":"
PUSH 'reboot';
PUSH 1;
CALL ::Command();
CALL ::Close();
"
},
"JS_CMD":
{
"test": {
"command": "notepad.exe",
"parameters": "C:\\Windows\\win.ini"
},
"reboot": {
"command": "Wpeutil.exe",
"parameters": "Reboot"
},
"shutdown": {
"command": "Wpeutil.exe",
"parameters": "Shutdown"
}
}
}
沙发是我的了,强贴留名 强大 谢谢分享 原来的PEXlorer??? 干嘛的,多点文字介绍下么 顶{:2_135:}顶{:2_135:}顶{:2_135:} 看不懂,但很厉害的样子 谢谢分享! 不知道干什么用的。。。。 在你的pe里搞这些,不错。 楼主很厉害!尽管不懂 这个应该属于折腾党喜欢的 这工具不错,顶一个 好腻害~支持原创~~~~ 任务栏颜色修改的方法是什么 楼主 求救谢谢 song分享 发表于 2018-11-17 16:37
任务栏颜色修改的方法是什么 楼主 求救谢谢
楼主大大,能出个winxshell的美化教程吗,资料真的太少,你要是不跟我说我都不会改颜色,多谢楼主大大了 老大厉害 song分享 发表于 2018-11-18 11:19
楼主大大,能出个winxshell的美化教程吗,资料真的太少,你要是不跟我说我都不会改颜色,多谢楼主大大了
不知道删除了什么wifi模块打不开了提示系统找不到指定文件 song分享 发表于 2018-11-20 10:54
不知道删除了什么wifi模块打不开了提示系统找不到指定文件
WIFI连接需要:
WinXShell.exe+ wxsUI\UI_WIFI文件夹
WinXShell.exe -ui -jcfg wxsUI\UI_WIFI\main.jcfg
=================================
或者
WinXShell.exe + wxsUI\UI_WIFI.zip文件
WinXShell.exe -ui -jcfg wxsUI\UI_WIFI.zip\main.jcfg
注意下路径。 slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe+ wxsUI%uI_WIFI文件夹
谢谢楼主大大,完美解决我的问题 slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe+ wxsUI%uI_WIFI文件夹
谢谢楼主大大,完美解决我的问题 slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe+ wxsUI%uI_WIFI文件夹
谢谢楼主大大,完美解决我的问题 有WinXShell的群吗? slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe+ wxsUI%uI_WIFI文件夹
http://61.164.108.157:8080/uploads/pic/20181120/1542702837462.jpg song分享 发表于 2018-11-20 16:39
ShowDrivs_Gui_x64.exe这个让我删除了不过为什么非要有这个东西呢 song分享 发表于 2018-11-20 16:46
ShowDrivs_Gui_x64.exe这个让我删除了不过为什么非要有这个东西呢
TEAM TEXT 启动无线服务.....$30|WAIT 100
EXEC =!net start Wlansvc
WAIT 100
forx %fdrive%\WifiDriver\*.xml,con,1,set &&exi=%con%
find $Z=Z%&exi%, exec %ProgramFiles%\ShowDrivs_Gui_x64.exe "%ProgramFiles%\wificonnect.wcs"! call loadc song分享 发表于 2018-11-20 16:39
楼主大大,桌面上有一个网络的图标怎么才能把它删除,没啥用在哪,回收站我删除了,不过网络删除不了 无权限下载附件。。 我手贱把winxshell在正常的系统打开了,然后重启后打不开文件夹了,自行恢复后打开一个文件夹就在新的窗口打开了。怎么办
页:
[1]
2