无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 25109|回复: 59
打印 上一主题 下一主题

[原创] [预览]WinXShell - 可创建现代风格窗口界面的Windows Shell

    [复制链接]
跳转到指定楼层
1#
发表于 2017-3-10 02:00:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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

预览版

评分

参与人数 10无忧币 +42 收起 理由
韩谷队7764 + 1 赞一个!
audny2002 + 1 很给力!
cyf1990427 + 5
879792799 + 5 深夜到此,只为给个赞
yhcfsr + 5 深夜到此,只为给个赞
zmac2007 + 5
freesoft00 + 5
1400700226 + 5 很给力!
不知 + 5 赞一个!
wintoflash + 5 很给力!

查看全部评分

2#
发表于 2017-3-10 02:50:35 来自手机 | 只看该作者
沙发是我的了,强贴留名
回复

使用道具 举报

3#
发表于 2017-3-10 07:03:03 | 只看该作者
强大
回复

使用道具 举报

4#
发表于 2017-3-10 07:19:33 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

5#
发表于 2017-3-10 07:42:55 | 只看该作者
原来的PEXlorer???
回复

使用道具 举报

6#
发表于 2017-3-10 08:19:21 | 只看该作者
干嘛的,多点文字介绍下么
回复

使用道具 举报

7#
发表于 2017-3-10 08:21:49 | 只看该作者
回复

使用道具 举报

8#
发表于 2017-3-10 09:57:35 来自手机 | 只看该作者
看不懂,但很厉害的样子
回复

使用道具 举报

9#
发表于 2017-3-10 10:14:04 | 只看该作者
谢谢分享!
回复

使用道具 举报

10#
发表于 2017-3-10 10:34:55 | 只看该作者
不知道干什么用的。。。。
回复

使用道具 举报

11#
发表于 2017-3-10 11:51:01 | 只看该作者
在你的pe里搞这些,不错。
回复

使用道具 举报

12#
发表于 2017-3-10 14:47:59 | 只看该作者
楼主很厉害!尽管不懂
回复

使用道具 举报

13#
发表于 2017-3-10 16:41:46 | 只看该作者
这个应该属于折腾党喜欢的
回复

使用道具 举报

14#
发表于 2017-3-10 16:42:46 来自手机 | 只看该作者
这工具不错,顶一个
回复

使用道具 举报

15#
发表于 2017-3-11 23:00:52 | 只看该作者
好腻害~支持原创~~~~
回复

使用道具 举报

16#
发表于 2018-11-17 16:37:25 | 只看该作者
任务栏颜色修改的方法是什么 楼主 求救  谢谢

点评

楼主大大,能出个winxshell的美化教程吗,资料真的太少,你要是不跟我说我都不会改颜色,多谢楼主大大了  详情 回复 发表于 2018-11-18 11:19
最新版是这个:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=371541  发表于 2018-11-17 17:30
打开WinXShell.jcfg,找到里面"JS_TASKBAR":{bkcolor":[0,122,204]},改成你喜欢的RGB颜色。  发表于 2018-11-17 17:21
回复

使用道具 举报

17#
发表于 2018-11-18 11:19:36 | 只看该作者
song分享 发表于 2018-11-17 16:37
任务栏颜色修改的方法是什么 楼主 求救  谢谢

楼主大大,能出个winxshell的美化教程吗,资料真的太少,你要是不跟我说我都不会改颜色,多谢楼主大大了

点评

不知道删除了什么wifi模块打不开了 提示系统找不到指定文件  详情 回复 发表于 2018-11-20 10:54
全部参数,我有时间了补充吧,你先说说你想要啥设置,我看看有没有,有的话直接给你回复。  发表于 2018-11-19 20:28
是打算做个设置的UI来表现这些参数,一段时间没维护了。感觉没啥美化啊,目前有的是 隐藏那些图标显示与否,任务栏是否只显示图标,任务窗口的下划线颜色,是否显示时钟区域,谈不上美化啊。  发表于 2018-11-19 20:27
回复

使用道具 举报

18#
发表于 2018-11-19 18:24:25 来自手机 | 只看该作者
老大厉害
回复

使用道具 举报

19#
发表于 2018-11-20 10:54:57 | 只看该作者
song分享 发表于 2018-11-18 11:19
楼主大大,能出个winxshell的美化教程吗,资料真的太少,你要是不跟我说我都不会改颜色,多谢楼主大大了

不知道删除了什么wifi模块打不开了  提示系统找不到指定文件

点评

WIFI连接需要: WinXShell.exe + wxsUI%uI_WIFI文件夹 WinXShell.exe -ui -jcfg wxsUI%uI_WIFI\main.jcfg ================================= 或者 WinXShell.exe + wxsUI%uI_WIFI.zip文件 WinXShell.exe  详情 回复 发表于 2018-11-20 12:24
回复

使用道具 举报

20#
 楼主| 发表于 2018-11-20 12:24:20 | 只看该作者
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

注意下路径。

点评

谢谢楼主大大,完美解决我的问题  详情 回复 发表于 2018-11-20 16:10
谢谢楼主大大,完美解决我的问题  详情 回复 发表于 2018-11-20 16:10
谢谢楼主大大,完美解决我的问题  详情 回复 发表于 2018-11-20 16:10
回复

使用道具 举报

21#
发表于 2018-11-20 16:10:52 | 只看该作者
slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe  + wxsUI%uI_WIFI文件夹

谢谢楼主大大,完美解决我的问题
回复

使用道具 举报

22#
发表于 2018-11-20 16:10:53 | 只看该作者
slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe  + wxsUI%uI_WIFI文件夹

谢谢楼主大大,完美解决我的问题
回复

使用道具 举报

23#
发表于 2018-11-20 16:10:56 | 只看该作者
slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe  + wxsUI%uI_WIFI文件夹

谢谢楼主大大,完美解决我的问题
回复

使用道具 举报

24#
发表于 2018-11-20 16:11:20 | 只看该作者
有WinXShell的群吗?

点评

因为可以添加系统的explorer,我也忙没太更新了,基本功能够用。只有论坛少量反馈,虽然UI暗黑主题,新的流畅设计,19H1的界面风格我也能做,不过毕竟是UI对于PE没那么重要。没什么讨论,我也没建群。  发表于 2018-11-20 21:22
回复

使用道具 举报

25#
发表于 2018-11-20 16:39:22 | 只看该作者
slore 发表于 2018-11-20 12:24
WIFI连接需要:
WinXShell.exe  + wxsUI%uI_WIFI文件夹

点评

楼主大大,桌面上有一个网络的图标怎么才能把它删除,没啥用在哪,回收站我删除了,不过网络删除不了  详情 回复 发表于 2018-11-20 17:07
ShowDrivs_Gui_x64.exe 这个让我删除了 不过为什么非要有这个东西呢  详情 回复 发表于 2018-11-20 16:46
回复

使用道具 举报

26#
发表于 2018-11-20 16:46:52 | 只看该作者

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 "%Progra  详情 回复 发表于 2018-11-20 16:47
回复

使用道具 举报

27#
发表于 2018-11-20 16:47:17 | 只看该作者
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
回复

使用道具 举报

28#
发表于 2018-11-20 17:07:58 | 只看该作者

楼主大大,桌面上有一个网络的图标怎么才能把它删除,没啥用在哪,回收站我删除了,不过网络删除不了

点评

你用的谁的PE.ljycslg的?隐藏桌面网络[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]"{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}"=dword:00000001   发表于 2018-11-20 21:32
回复

使用道具 举报

29#
发表于 2020-3-12 13:39:46 | 只看该作者
无权限下载附件。。
回复

使用道具 举报

30#
发表于 2020-3-19 22:29:17 | 只看该作者
我手贱把winxshell在正常的系统打开了,然后重启后打不开文件夹了,自行恢复后打开一个文件夹就在新的窗口打开了。怎么办

点评

新版本有个 -unregist 命令,可以恢复系统资源管理器关联。不过还没发布。 把文件夹的打开方式,还原就好了。  详情 回复 发表于 2020-3-19 22:33
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-28 07:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表