无忧启动论坛

标题: [预览]WinXShell - 可创建现代风格窗口界面的Windows Shell [打印本页]

作者: slore    时间: 2017-3-10 02:00
标题: [预览]WinXShell - 可创建现代风格窗口界面的Windows Shell
本帖最后由 slore 于 2018-11-19 20:59 编辑

此自定义界面组件(xml+lua),已经整合到以下帖子中,并且完成了WIFI,声音设置,日历,我的电脑属性,分辨率设置,关机(窗口模式,全屏模式),仿WIN10开始菜单完成了一半,
最新版本请参照该主题。


[ModernUI回归] explorer再见,WinXShell你好

程序效果:




使用方法
  1. 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定义的外部程序;

需要参数的函数,第一个参数为参数个数,方便以后功能扩展。

例如:
设置分辨率可,
  1. PUSH 768;
  2. PUSH 1024;
  3. PUSH 2;
  4. CALL ::SetResolution();
复制代码


也可,
  1. PUSH '1024x768';
  2. PUSH 1;
  3. CALL ::SetResolution();
复制代码


也可,
  1. PUSH #元素;  <-将获取元素的文本内容,格式(宽x高)
  2. PUSH 1;
  3. CALL ::SetResolution();
复制代码


TODO:
后续可以使用.来具体指定获取和设置的元素属性
#元素.TEXT
#元素.COLOR
#元素.HEIGHT
#元素.xxx


XML界面定义

  1.     <Style name="PowerBtn" value="height=&quot;40&quot; textcolor=&quot;#FF000000&quot; hottextcolor=&quot;#FFFFFF&quot; hotimage=&quot;color='#FFF48FB1'&quot;" />
  2.     <VerticalLayout bkcolor="#FFF9F9F9">
  3.         <HorizontalLayout height="32" bkcolor="#FFC2185B">
  4.             <Label text="电源" textpadding="5,0,0,0" />
  5.             <Control />
  6.             <Button name="::closebtn" bkimage="file='close.png'" width="16" height="16" padding="0,8,5,0" />
  7.         </HorizontalLayout>
  8.         <VerticalLayout height="150" bkcolor="#FFE91E63">
  9.             <HorizontalLayout>
  10.                 <Control />
  11.                 <VerticalLayout width="128">
  12.                     <Button normalimage="power.png" height="48" width="48" enabled="false" padding="40,16,0,0" />
  13.                     <Label text="关闭计算机" font="24" textpadding="0,10,0,0" />
  14.                 </VerticalLayout>
  15.                 <Control />
  16.             </HorizontalLayout>
  17.         </VerticalLayout>
  18.         <VerticalLayout>
  19.             <Button name="shutdownbtn" text="关机" style="PowerBtn" />
  20.             <Button name="restartbtn" text="重启" style="PowerBtn"/>
  21.             <Button text="休眠" style="PowerBtn" enabled="false" />
  22.             <Button text="待机" style="PowerBtn" enabled="false" />
  23.         </VerticalLayout>
  24.     </VerticalLayout>
复制代码


JCFG动作定义

  1. {
  2.   "name":"UI_Shutdown",
  3.   "baricon":"power.ico",
  4.   "OnClick":
  5.   {
  6.   "shutdownbtn":"
  7. PUSH 'test';
  8. PUSH 1;
  9. CALL ::Command();
  10. CALL ::Close();
  11.   ",
  12.   "restartbtn":"
  13. PUSH 'reboot';
  14. PUSH 1;
  15. CALL ::Command();
  16. CALL ::Close();
  17.   "
  18.   },
  19.   "JS_CMD":
  20.   {
  21.     "test": {
  22.          "command": "notepad.exe",
  23.          "parameters": "C:\\Windows\\win.ini"
  24.     },
  25.     "reboot": {
  26.        "command": "Wpeutil.exe",
  27.        "parameters": "Reboot"
  28.     },
  29.     "shutdown": {
  30.       "command": "Wpeutil.exe",
  31.       "parameters": "Shutdown"
  32.     }
  33.   }
  34. }
复制代码


WinXShell_x64.zip

875.11 KB, 下载次数: 343, 下载积分: 无忧币 -2

预览版

WinXShell_x86.zip

760.48 KB, 下载次数: 174, 下载积分: 无忧币 -2

预览版


作者: 红毛樱木    时间: 2017-3-10 02:50
沙发是我的了,强贴留名
作者: lingqing    时间: 2017-3-10 07:03
强大
作者: 23456    时间: 2017-3-10 07:19
谢谢分享
作者: 邪恶海盗    时间: 2017-3-10 07:42
原来的PEXlorer???
作者: addaadda    时间: 2017-3-10 08:19
干嘛的,多点文字介绍下么
作者: 享β亻寸木东    时间: 2017-3-10 08:21

作者: 窄口牛    时间: 2017-3-10 09:57
看不懂,但很厉害的样子
作者: 青青草    时间: 2017-3-10 10:14
谢谢分享!
作者: newyun    时间: 2017-3-10 10:34
不知道干什么用的。。。。
作者: wxgwxg    时间: 2017-3-10 11:51
在你的pe里搞这些,不错。
作者: SGZOU    时间: 2017-3-10 14:47
楼主很厉害!尽管不懂
作者: helloman    时间: 2017-3-10 16:41
这个应该属于折腾党喜欢的
作者: 826773297    时间: 2017-3-10 16:42
这工具不错,顶一个
作者: chxm1023    时间: 2017-3-11 23:00
好腻害~支持原创~~~~
作者: song分享    时间: 2018-11-17 16:37
任务栏颜色修改的方法是什么 楼主 求救  谢谢
作者: song分享    时间: 2018-11-18 11:19
song分享 发表于 2018-11-17 16:37
任务栏颜色修改的方法是什么 楼主 求救  谢谢

楼主大大,能出个winxshell的美化教程吗,资料真的太少,你要是不跟我说我都不会改颜色,多谢楼主大大了
作者: dwtr    时间: 2018-11-19 18:24
老大厉害
作者: song分享    时间: 2018-11-20 10:54
song分享 发表于 2018-11-18 11:19
楼主大大,能出个winxshell的美化教程吗,资料真的太少,你要是不跟我说我都不会改颜色,多谢楼主大大了

不知道删除了什么wifi模块打不开了  提示系统找不到指定文件
作者: slore    时间: 2018-11-20 12:24
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

注意下路径。
作者: song分享    时间: 2018-11-20 16:10
slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe  + wxsUI%uI_WIFI文件夹

谢谢楼主大大,完美解决我的问题
作者: song分享    时间: 2018-11-20 16:10
slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe  + wxsUI%uI_WIFI文件夹

谢谢楼主大大,完美解决我的问题
作者: song分享    时间: 2018-11-20 16:10
slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe  + wxsUI%uI_WIFI文件夹

谢谢楼主大大,完美解决我的问题
作者: song分享    时间: 2018-11-20 16:11
有WinXShell的群吗?
作者: song分享    时间: 2018-11-20 16:39
slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe  + wxsUI%uI_WIFI文件夹


作者: song分享    时间: 2018-11-20 16:46
song分享 发表于 2018-11-20 16:39

ShowDrivs_Gui_x64.exe  这个让我删除了  不过为什么非要有这个东西呢
作者: song分享    时间: 2018-11-20 16:47
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 17:07
song分享 发表于 2018-11-20 16:39

楼主大大,桌面上有一个网络的图标怎么才能把它删除,没啥用在哪,回收站我删除了,不过网络删除不了
作者: betapc    时间: 2020-3-12 13:39
无权限下载附件。。
作者: 命令提示符CMD    时间: 2020-3-19 22:29
我手贱把winxshell在正常的系统打开了,然后重启后打不开文件夹了,自行恢复后打开一个文件夹就在新的窗口打开了。怎么办
作者: slore    时间: 2020-3-19 22:33
本帖最后由 slore 于 2020-3-19 22:39 编辑
命令提示符CMD 发表于 2020-3-19 22:29
我手贱把winxshell在正常的系统打开了,然后重启后打不开文件夹了,自行恢复后打开一个文件夹就在新的窗口 ...

新版本有个 -unregist 命令,可以恢复系统资源管理器关联。不过还没发布。

把文件夹的打开方式,还原就好了。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\open\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,45,00,78,00,70,00,6c,00,6f,00,72,00,65,00,72,00,2e,00,65,00,78,00,\
  65,00,00,00
"DelegateExecute"="{11dbb47c-a525-400b-9e80-a54615a090c0}"




你用的WinXShell.exe版本比较老了,看了下新版本的WinXShell.lua会判断是否存在 C:\Windows\explorer.exe,
有系统资源管理器的话,不会注册文件夹关联。

作者: 命令提示符CMD    时间: 2020-3-19 22:40
本帖最后由 命令提示符CMD 于 2020-3-19 22:41 编辑
slore 发表于 2020-3-19 22:33
新版本有个 -unregist 命令,可以恢复系统资源管理器关联。不过还没发布。

把文件夹的打开方式,还原 ...

谢谢,我好像光修改了software里面的Folder\shell\open\command
明天开电脑的时候我再试试(还好火绒报毒拦截了一部分操作要不然系统又要废了)
作者: slore    时间: 2020-3-19 22:55
本帖最后由 slore 于 2020-3-19 22:56 编辑
命令提示符CMD 发表于 2020-3-19 22:40
谢谢,我好像光修改了software里面的Folder\shell\open\command
明天开电脑的时候我再试试(还好火绒报 ...

不至于废了,就是改了些explorer.exe关联的菜单啥的。自带了备份注册表项目,不过没有提供命令还原,PE重启就行了。。。

作者: 命令提示符CMD    时间: 2020-3-20 07:09
本帖最后由 命令提示符CMD 于 2020-3-20 07:11 编辑
slore 发表于 2020-3-19 22:55
不至于废了,就是改了些explorer.exe关联的菜单啥的。自带了备份注册表项目,不过没有提供命令还原,PE重 ...

谢谢,explorer恢复正常。不过我手贱打开的是最新的WimBuilder里的winxshell啊下次再也不敢作死了

作者: audny2002    时间: 2020-4-26 20:56
非常感谢,点一个赞吧
作者: 韩谷队7764    时间: 2020-7-23 15:16
顶顶顶顶顶
作者: jecky.s    时间: 2020-10-21 04:13
本帖最后由 jecky.s 于 2020-10-23 09:07 编辑

explorer再见 倒是很好,可为何要学win10风格呢,不是我理解错误吧.我倒是希望有老win风格的shell  for win10.
win10太丑,也难用.
我要发多少贴才可以下载阿,不要让我破戒吧.郁闷
作者: NOS    时间: 2020-11-23 21:01
好好学习
作者: harrylei84    时间: 2021-3-8 20:24
赞一个!
作者: huang'yi'ye    时间: 2021-3-19 10:26
        赞一个!
作者: D9gHH_I[(Mf8    时间: 2024-7-4 17:49
666
作者: D9gHH_I[(Mf8    时间: 2024-7-4 17:50
666

作者: 远大的理想    时间: 2024-7-14 14:16
谢谢分享,winxshell很强大!
作者: wodehjy    时间: 2024-9-14 21:31
1
作者: guyu孤语    时间: 2024-9-28 18:59
请问一下作者,WinXShell自带的系统属性面板上依赖的字体是什么?我制作的PE精简字体之后使用WinXShell系统属性遇到了字体显示不全的问题
作者: slore    时间: 2024-9-28 19:03
guyu孤语 发表于 2024-9-28 18:59
请问一下作者,WinXShell自带的系统属性面板上依赖的字体是什么?我制作的PE精简字体之后使用WinXShell系统 ...

wxsUI\UI_SystemInfo.zip\
         locales\zh-CN.xml

里面是字体定义,应该用的微软雅黑。
作者: guyu孤语    时间: 2024-9-29 06:08
slore 发表于 2024-9-28 19:03
wxsUI%uI_SystemInfo.zip\
         locales\zh-CN.xml

系统属性界面显示不正常的原因找到了,是因为那个面板依赖systemcpl.dll但是我没有添加
作者: guyu孤语    时间: 2024-9-29 06:08
slore 发表于 2024-9-28 19:03
wxsUI%uI_SystemInfo.zip\
         locales\zh-CN.xml

系统属性界面显示不正常的原因找到了,是因为那个面板依赖systemcpl.dll但是我没有添加
作者: guyu孤语    时间: 2024-9-29 06:08
slore 发表于 2024-9-28 19:03
wxsUI%uI_SystemInfo.zip\
         locales\zh-CN.xml

谢谢
作者: yy2012    时间: 2024-10-23 09:17
看看
作者: hehui    时间: 2024-10-24 08:26
感谢楼主分享
作者: wn168cn@163.com    时间: 2024-10-24 08:30
感谢楼主分享
作者: zxy357x    时间: 2024-11-1 20:46
请教一下大师,10PE怎么增加系统属性OEM图片?
我把oemLogo.bmp放进去了,注册表也增加了
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation]
"Logo"="X:\\Windows\\system32\\oemLogo.bmp"
为何显示不出来

11PE同样这样增加可以显示
作者: lsw13227    时间: 昨天 17:17
原生Explorer执行start /min "temp" "\\192.168.1.10\temp"可以打开网络路径并最小化在任务栏,WinXshell也能这样实现打开窗口并最小化吗?




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3