×

[更新(2022/11/11) ModernUI回归] explorer再见,WinXShell你好!

hqy hqy 发表于2024-12-26 17:02:55 浏览13 评论0

抢沙发发表评论

什么是WinXShell?
支持Windows 7,8,8.1,10,11, Windows Server 2008,2012,2016,2019,2022,Windows 7/8/8.1/10/11 PE, Windows Server 2008/2012/2016/2019/2022 PE平台的代替explorer.exe的外壳程序。(目前仍有explorer.exe的功能未实现。)
特别对于Windows PE直接启动系统自带的boot.wim,无需任何内核修改,运行即可用的外壳程序。

桌面预览:
mp;aid=Mzc3NTA1fDMyMWJkZjM0fDE3MzUyMDI5MzV8MHwzNzE1NDE%3D&noupdate=yes&nothumb=yes" file="forum.php?mod=attachment&aid=Mzc3NTA1fDMyMWJkZjM0fDE3MzUyMDI5MzV8MHwzNzE1NDE%3D&noupdate=yes" class="zoom" width="600" inpost="1" initialized="true" style="overflow-wrap: break-word; cursor: pointer;"/>





使用方法:
正常系统下,CTRL+SHIFT按住右键任务栏,或者开始菜单空白处,可以结束explorer.exe进程,
结束默认外壳程序后,运行WinXShell.exe即可。(cmd或者任务管理器)

PE系统下,
1.shift+F10打开cmd.exe命令行
2.cmd.exe下执行WinXShell.exe即可。

加了-winpe/-shell参数的话,
a) 结束已有的shell程序(wallpaperhost.exe)。
b)当USERPROFILE环境变量未更改时,自动设置为X:\Users\Default。
c)开始菜单点击重启和关机时,会从配置文件中读取相关命令定义。(附件中定义为wpeutil.exe Reboot/Shutdown)

2.任务管理器结束默认外壳程序(Win 8(.1)以及Win 10PE的wallpaperHost.exe,Win 7 PE不需要)
   不结束的话,也可使用-desktop参数强制创建桌面,但是鼠标点击桌面的话,
   其他程序窗口都切到后面看不到(PExlorer本程序当成一个全屏的应用程序了),要任务栏点程序切换。
3.设置USERPROFILE环境变量为X:\Users\Default
   不进行此操作,桌面只有回收站,且不能新建文件(夹),因为Desktop默认定义为%USERPROFILE%\Desktop,
   PE下此环境变量默认指向X:\Windows\system32\config\xxxx,这个地方没有Desktop文件夹。

4.cmd.exe下执行PExlorer.exe -winpe


2022-11-12 更新:
http://bbs.wuyou.net/forum.php?m ... &fromuid=166812

2021-11-11 更新:
http://bbs.wuyou.net/forum.php?m ... &fromuid=166812

2020-04-04 更新:
http://bbs.wuyou.net/forum.php?m ... &fromuid=166812

2019-03-03 更新:
http://bbs.wuyou.net/forum.php?m ... &fromuid=166812

20H1 PE 中文版截图:




2018-10-02 更新:
http://bbs.wuyou.net/forum.php?m ... 3832&fromuid=166812

2018-08-08 更新:
 winapi_x86.zip (141.72 KB, 下载次数: 146)
x86版本lua的winapi.dll库的编译选项搞错了,编译成UNICODE版了,导致字符串无法正常识别,使用winapi库的注册表的操作,窗口操作不能正常工作。
使用x86版本的话,请替换附件中的winapi.dll到lua_helper\x86\。
其中还包含了需要-p指定密码才能运行shell的WinXShell.lua脚本(防止误操作),没有需要的话,不用替换。

2018-07-26 RC3.2.0更新:
 WinXShell_x64.zip (2.19 MB, 下载次数: 460)
 WinXShell_x86.zip (2.04 MB, 下载次数: 200)




winxshell.exe -daemon - gif 动画演示
https://github.com/slorelee/wimb ... e/master/winxshell/
https://github.com/slorelee/wimb ... ll/deamon_in_pe.gif  (6.66MB)

  • 修复:气泡提示框无法显示问题

  • 修复:每次shell启动时,都会执行开机启动项的问题

  • 修复:托盘时钟区点击显示日历时,可能导致explorer.exe崩溃重启问题

  • 修复:WES环境控制面板项目启动卡顿问题

  •      (针对WES环境,第一运行shell时,调用control.exe初始控制面板)

  • 新增:实现了对ms-settings协议的委托处理,可以自定义ms-settings请求的打开对象(虽然改下注册表也可以处理,但我还是采用了正规的委托方式来实现)

  •      可以自定义当选择桌面菜单的分辨率设定,个性化菜单,任务栏右键菜单的任务栏属性,时间和日期,自定义通知区域等项目的动作

  • 新增:UI的xml中的图像定义,支持ico图标以及文件中的资源ID(file='notepad.exe,0')

  • 新增:对于UI对象,增加hotbordercolor参数,可指定鼠标在控件悬停时显示的边框颜色

  • 新增:对于UI对象,position参数增加一个leftbottom选项,可设置窗口启动时在左下角显示

  • 新增:对于UI对象,增加一个startup_win参数,可设置窗口启动时最大化显示

  • 新增:对于UI对象,增加窗口位置大小控制Lua指令-sui:move(dx,dy,dw,dh),sui:moveto(x,y,w,h)

  • 新增:UI_Launcher--APP快速启动界面(类似Win10开始菜单右侧部分)

  • 新增:针对Windows Embedded Standard环境,增加一个-wes参数进行动作区分

  • 新增:将UI界面的Lua脚本控制扩展到shell模块,可通过WinXShell.lua对程序的动作进行自定义

  •      例如,开始菜单项目点击,托盘时钟区域的点击,ms-settings的消息处理等处理逻辑都可自定义

  • 改善:文件结构调整:将UI_xxxxx统一放置到wxsUI目录下。(可通过WINXSHELL_UIFOLDER环境变量自定义)

  • 改善:支持ZIP形式的UI_xxxxx资源

  • 改善:UI_xxxx资源调整(界面微调,主题更新,西班牙语支持), 感谢 bob.omb,teik。

  • 改善:通过WinXShell.Lua的引入,增强易用性。

  •      仅需运行-winpe或者-wes或者-daemon,将自动根据环境条件进行下列动作(均可自定义):

  •      * 如果系统不存在ieframe.dll,自动注册快捷方式的打开文件夹所在位置处理的wxsStub.dll

  •      * WINPE模式下点击我的电脑【属性(P)】菜单自动打开UI_SystemInfo界面

  •      * 任务栏时钟区域点击事件处理

  •      * 自动注册ms-settings协议委托,并启动WinXShell.exe -Embedding处理委托




2018-04-16 RC3.1.0更新:
 WinXShell_x64.zip (2.55 MB, 下载次数: 375)
 WinXShell_x86.zip (2.39 MB, 下载次数: 253)





更新内容
  • 新增:系统相当或更好功能,却只要少数十倍体积

  • 新增:我的电脑属性,显示内存信息,并自定义显示运行时间功能[xml+lua你可以改变布局颜色,添加任何东西](不需要15MB的wbem)

  • 新增:劫持快捷方式右键打开所在目录,属性中打开所在目录响应,自定义快捷方式的打开所在文件方法。可以去掉ieframe.dll+wow64\ieframe.dll(24MB)

  • 新增:单击任务栏时钟区可显示一个lua做的简易日历(有好的界面想法的,可以自定义)

  • 新增:双击任务栏时钟区可运行timedate.cpl

  • 新增:以上动作均可配置(是否劫持,可运行自定义程序)

  • 改进:当无无线网络适.配.器时,WIFI的托盘图标显示为有线网络图标

  • 改进:音量控制界面改变声音时,可指定是否发出Beep声音



使用方法:
WinXShell.exe运行前导入以下注册表
  1. wxsStub.reg

  2. UI_SystemInfo\handle_prop.reg

复制代码


使用explorer.exe也可以使用“我的电脑属性”,“打开快捷方式所在位置拦截”,“时钟区域点击调用事件”,使用方法如下:
WinXShell.jcfg添加
"JS_DAEMON" : {
  "handle_clockarea_click":true
}
后运行
WinXShell.exe -daemon

下版本预告:
共享目录访问认证界面


2018-03-30 RC3.0.0更新:
 WinXShell_x64.zip (2.25 MB, 下载次数: 147)
 WinXShell_x86.zip (2.09 MB, 下载次数: 109)



更新内容
  • 修复在WIN7,8系统下桌面右键卡死问题

  • 修复文件配置不正确导致程序异常终止的问题

  • 修复WSE7环境下,我的电脑,桌面不能打开控制面板问题

  • 改进:WinXShell.jcfg中可添加“control”命令,控制开始菜单的控制面板菜单

  • 改进:可以定义title属性来控制UI界面的任务栏名称(支持多国语言资源)

  • 新增:导入Lua,可以通过脚本进行交互,动态改变UI元素状态

  • 改进:界面多国语言支持改善,字符串资源可以从lua脚本直接指定系统资源(#{@shell32.dll,101}),资源不存在时,读取mui文件。

  • 新增:高仿的我的电脑属性界面(所有信息,布局可自行更改,也可以追加新的启动链接,图片等)

  • 新增:音量托盘控制图标

  • 新增:音量控制界面

  • 改进:分辨率设定界面通过Lua脚本定义,动作流程进行改善,可以15秒倒计时,自动恢复,也可以定义选择就改变分辨率



其他1:
RS4的17133.1简单测试了下,不需要额外处理,可以正常动作。
声音设定默认(boot.wim)可以直接使用?但是好像是内部设备,实际没有效果。
网络,发现WLAN服务可以直接开启,没有对应设备,没有测试,WIFI连接没有做改动。

其他2:
1/31我的儿子出生了,所以基本上没有太多时间来更新,本打算不太做机能,只是修复BUG和适.配.新的RS4,上个周有人提出,分辨率设置改善,
所以趁机强化了下UI部分。下面的开发履历可以看到其实只有最近5,6天更新比较频繁。




其他3:
我的美工不是很好,我的电脑属性保持了系统的样子,高仿,
声音控制界面是给大家一个例子,没有模仿 系统的声音设置界面,保持一致性的话,
可以参照WIFI界面,修改。如果谁有更好的UI设计,可以分享出来。

其他4:
集成的Lua是5.3版本,需要自己扩展的话,请静态编译对应的所需插件即可使用。
附件中带了一个winapi.dll,可以使用Windows的API, 访问注册表,启动程序,操作Windows窗口,进程管理等功能。
http://stevedonovan.github.io/winapi/api.html
我的电脑属性界面,只使用了读取注册表版本,CPU信息,如果想省空间(200KB),可以删除,把获取注册表信息部分写死。

因为PE的特殊性,都是静态编译版本,体积略大,不过单文件压缩不到1MB,还是可以接受的,如果有人
自己的PE集成VC++2015,可以用动态版本,可以回复我,给编译动态版本,估计从2,3MB的大小能到500KB~800KB。

2018-01-10 RC2.7.1更新:
 WinXShell_x64.zip (1.14 MB, 下载次数: 251)
 WinXShell_x86.zip (1.02 MB, 下载次数: 162)



更新内容
  • 新增:"trans"选项(jcfg),可以使窗口有透明效果

  • 新增:"theme"选项(jcfg & 命令行),可以加载不同的主题风格(参考:UI_WIFI,UI_Resolution)

  • 新增:WIFI界面提供一个WLAN按钮,启动和停止Wlansvc服务

  • 改进:网络图标将正确显示有线,无线状态。无线连接时显示信号强度

  • 改进:分辨率设定界面添加滚动条,以及对"应用","取消"按钮增加快捷键,使得分辨率过低时也可调整

  • 改进:移动Font定义到locales定义文件中

  • 改进:当对应locales定义文件不存在时,使用英文定义文件(en_US.xml)

  • 改进:新增"class"选项(jcfg)来识别是否是 无线网络连接界面,使得UI_WIFI名可被变更



Next
  • 新增: "bartitle"选项(jcfg),可以指定任务栏显示名(本次更新漏提交:()   =完成=

  • 新增:使用笔记本时,显示电池电量托盘

  • 新增:音量调节界面及音量托盘图标       =完成=



  1. WinXShell.exe -ui -jcfg UI_WIFI\main.jcfg -hidewindow

  2. WinXShell.exe -ui -jcfg UI_WIFI\main.jcfg -theme darkgray

复制代码


2017-12-26 RC2.7 更新:
 WinXShell_x64.zip (1.14 MB, 下载次数: 1366)
 WinXShell_x86.zip (1.01 MB, 下载次数: 174)



更新内容
  • 修复FreeVK等程序任务栏显示2个图标问题 (#241 2.6.1小修正吸收)

  • 采用延时加载技术,使得在没有wlanapi.dll的boot.wim下也可以正常运行

  • 分离UI功能和外壳功能——WIFI连接(含无线网络托盘状态)可以在正常Windows或者采用原版explorer为外壳的PE下独立运行

  • 废除WinXShell.jcfg中的托盘图标设定,托盘图标由对应的UI功能实现

  • 新增-hidewindow参数,可以让UI_WIFI初次启动后只显示托盘网络状态图标而不弹出【无线网络连接】界面

  • 分辨率变化后,UI窗口可自动调整到“中央”或“右下角”正确位置(防止分辨率差距较大时,界面显示到屏幕范围外,必须重启UI程序的问题)

  • UI中的文字信息的多国语言处理改善,移动到locales目录下,zh-CN.xml/en-US.xml自动识别

  • 多国语言文件中的id,从必须是数字改为可以直接使用英文单词



  1. WinXShell.exe -ui -jcfg UI_WIFI\main.jcfg

  2. WinXShell.exe -ui -jcfg UI_WIFI\main.jcfg -hidewindow

复制代码


本来打算声音设置界面,做完一起发布的,因为wlanapi.dll加载失败问题,以及一些外国网友对英文版的需求,在新年前先发布一版。

================历史版本更新说明================
没赶上RS3更新,不过多的这1周修复了不少问题。
2017-10-28 RC2.6 更新(UI技术预览版):
 WinXShell_x64.zip (1.13 MB, 下载次数: 265)
 WinXShell_x86.zip (1.01 MB, 下载次数: 157)



对于最新Windows 10 RS3 16299.15前版本不需要修改仍可以使用,从4月份RS2以后就没动过代码了,
趁着这次Windows 10更新,对报告的问题进行修复,以及对托盘功能进行强化。
另外最新Win10PE右键新建菜单的问题微软已经修复,不会卡死。


更新内容
  • 资源管理器 - 修复最大化时当鼠标移动到标题栏特定位置会抖动的问题

  • 资源管理器 - 修复DWM有效时,点击最小化按钮问题

  • 实现气泡提示功能

  • 托盘增加声音(状态未实时更新,下版本对应,WinXShell.jcfg中可设置不显示此图标)

  • 托盘增加网络图标(状态未实时更新,下版本对应,WinXShell.jcfg中可设置不显示此图标)

  • 网络图标点击可直接连接WIFI,可启用和关闭防火墙



Modern UI相关详细内容说明,请参考回复帖。
http://bbs.wuyou.net/forum.php?m ... 9183&fromuid=166812

2017-04-08 更新:
 WinXShell_x64.zip (1.08 MB, 下载次数: 357)
 WinXShell_x86.zip (986.34 KB, 下载次数: 243)

  • 最新Windows 10 PE的右键新建菜单或导致卡死,追加一个支持自定义二级WinXNew菜单的选项。(存在卡死现象的版本,请使该参数有效,删除最前面的#号)

  • 桌面右键菜单现在可以支持注册表中的%V参数,打开命令提示符,打开powershell等菜单不再进行hook处理。

  • 可以通过配置文件,设置默认桌面图标大小。 (@shuren 说过年好更新的,结果拖了2个月)

  • 使用简易化。-winpe参数指定时,将自动结束原shell程序,并确认和设置USERPROFILE环境变量,直接启动到桌面。

  • 集成UI库duilib(文件增大500KB),支持自定义界面(目前支持分辨率,屏幕旋转设置界面,以及关机重启界面)。

  • 程序更名为WinXShell.exe,配置文件也变成WinXShell.jcfg。



桌面图标大小指定方法:
  1.   "::桌面":

  2.   {

  3.    "iconsize":48

  4.   }

复制代码

小图标 - 24, 中图标 - 48, 大图标 - 96

如果不需要引入UI库的版本,请告知我,单独发布。

2017-01-12 更新:
*请下载最新版

  • 最新Windows 10内测版本15002,改善DPI显示功能,桌面图标显示时会导致PExlorer崩溃,紧急追加一个选项禁用桌面图标,保证任务栏功能可用。

  • 另外15002版本,桌面右键的打开命令提示符改为了powershell,PE一般没有,默认调用cmd。如有PS的话,可配置force_cmdhere选项。

  • 删除"关于About PExlorer"菜单。



因无法显示桌面图标,稍后提供一个可启动指定应用程序的桌面挂件小工具。
(文件管理器可正常使用,用这个访问桌面文件夹也可以。)
微软的问题,估计后续版本会自然解决,目前先这样。

  1.   "::桌面":

  2.   {

  3.     "no_items":true,

  4.     "force_cmdhere":false,

  5.     ...

  6.   }

复制代码


其他:
PExlorer之后将引入UI库,自己实现,类似 手机的 开始菜单(更好的支持平板),分辨率设置,带农历的日历,WIFI连接,声音选项,壁纸设置,通知栏等,
可自行使用类html格式来制定界面布局颜色等。随后程序将正式更名为x-shell(PExlorer不是个单词,PE Explorer又是别的程序,一直打算改个名字的)。
顺利的话,估计6,7月能完。


2016-12-19 更新:
*请下载最新版(不配置no_items参数即可正常显示桌面)

  • 处理环境变量广播通知

  • PE下ClassicShell的开始菜单1分钟后才响应的问题修正

  • 为更好的支持ClassicShell的开始菜单,提供一个参数调整开始菜单图标余白



ClassicShell不设置替换开始按钮的话,无法响应鼠标左右键点击,所以请使用3态开始按钮图标,
PExlorer的开始图标可配置为空,可根据自己选择的开始按钮图标设置右侧余白大小(下例的图标是40x120像素的,所以不需要设置偏移量,ClassicShell的标准贝壳图标的话,设置8像素会好看些)

  1.   "::开始菜单":

  2.   {

  3.     "start_icon":"empty",

  4.     "start_padding":8,

  5.     ...

  6.   }

复制代码


注意:ClassicShell请使用4.2.5版本。



FYI
3态开始按钮图标制作说明
http://www.classicshell.net/tutorials/buttontutorial.html
论坛给出的一些图标例子
http://www.classicshell.net/foru ... 3b40e833d483ee1403c

2016-09-16 RC 2.4.2 更新:
 PExlorer_x64.zip (572.45 KB, 下载次数: 207)
 PExlorer_x86.zip (498.88 KB, 下载次数: 181)

  • 全屏网页或者视频时,隐藏任务栏

  • 支持运行中更改壁纸(PECMD WALL也有效)

  • 任务栏窗口右键系统菜单改善

  • 分辨率调整时可触发一个调用(个别需求)



onDisplayChanged定义时,当分辨率变化会调用定义的命令。showflags(0-隐藏调用,1-正常显示,默认值为:1)和parameters参数可省略。
  1.   "JS_TASKBAR":

  2.   {

  3.     "bkcolor":[0,122,204],

  4.     "onDisplayChanged": {

  5.          "command": "app.exe",

  6.          "showflags":1,

  7.          "parameters":""

  8.     }

  9.   }

复制代码



2016-07-31 RC 2.4.1 更新:
*请下载最新版

  • 解决使用文件打开对话框作为文件管理器时,新建文件夹,复制删除等操作不会及时刷新问题(新方案)

  • PExlorer的文件资源管理器任务栏图标由未知程序改为PExlorer的图标

  • 开始菜单项目可以通过PExlorer.jcfg设置

  • SHIFT右键开始菜单图标或者任务栏空白处,增加退出PExlorer菜单(因为开始菜单中的结束程序默认不显示了)



新方案,支持全版本不用因为shell32版本不同而要修改配置了。
如果自己修改了shell32.dll或者不使用内置文件管理器可以通过:
"JS_FILEEXPLORER"下面的hook_GetShellWindow设置为false将禁用(默认值为true)。
注意新方案目前只会影响PExlorer.exe进程,如果使用notepad,任务管理器等的文件打开对话框时,仍然不会自动刷新。

开始菜单设置,以下为默认值,默认值的话可以缺省不设置

  1. "JS_STARTMENU":

  2.   {

  3.    "nosettings":true,

  4.    "nobrowse":false,

  5.    "nobrowse_network":true,

  6.    "nofind":true,

  7.     "norun":true,

  8.     "nologoff":true,

  9.     "norestart":false,

  10.     "noshutdown":false,

  11.     "noterm":true

  12.    }



复制代码


2016-05-20 RC 2.4 更新:
*请下载RC2.4.1版



  • 实现AppBarMessage消息处理,返回任务栏位置信息,使得ClassicShell开始菜单可以使用。




2016-05-13 RC 2.3 更新:
*请下载最新版

  • 解决使用文件打开对话框作为文件管理器时,新建文件夹,复制删除等操作不会及时刷新问题



原理及修改方法见#127楼。
http://bbs.wuyou.net/forum.php?m ... 5074&fromuid=166812

2016-05-11 RC 2.2 更新:
*请下载最新版

  • 创建一个打开对话框来代替文件管理器(实验性功能,PExlorer.jcfg中不定义第3方文件管理器时有效),已知细节问题如下:

    • 正常系统下最小化按钮不可用(PE下反而可用),可点击任务栏图标

    • 右键第一个菜单是“选择”(不太影响使用,双击可以正常访问)

    • 限制多文件选中按回车动作

    • 不能打开控制面板(与默认打开文件对话框一致)

    • PE下,非explorer外壳程序,打开对话框中新建,复制,删除文件不会自动刷新(通用问题)

    • 开始菜单最顶部的“文件管理器”会自动刷新,但是微软内部消息处理机制,一个应用程序应该只打开一个打开文件对话框,所以通过这个方法打开多个窗口时,只有最新的窗口可以接收快捷键(F5,CTRL+C,CTRL+V)



  • 修复快速启动栏刷新的内存泄漏问题



2016-05-06 RC 2.0 更新:
*请下载最新版





  • 桌面强化

    • 工程编译UNICODE版本,解决重命名中文乱码问题

    • 在鼠标点击位置新建文件夹或文件,并自动进入重命名模式

    • 右键刷新,改变图标大小,排列顺序菜单后仍竖排显示

    • 分辨率,任务栏高度变更后,桌面图标自动调整

    • F5键可以刷新桌面

    • 完善WIN+D处理逻辑



  • 任务栏强化

    • 支持系统托盘图标(声音,电池,网络,USB设备等,需要内核有支持文件)

    • 高DPI模式下,任务栏高度,图标大小自动适应



  • 其他功能

    • JS_TASKBAR下可以添加"notaskbar":true参数屏蔽掉任务栏

    • JS_HOTKEY段可以添加"WIN":"WIN+Z"参数来重定义WIN键



感谢ljycslg的积极反馈。

2016-02-19 RC 1.1 更新:
*请下载最新版

小幅更新。
  • 壁纸显示增强。


    修改PExlorer.jcfg中对应参数即可,拉伸默认的话可省略此配置项。

    复制代码



    RC 2.0版计划:

    第三方开始菜单不能用,试了些都不太满意,打算自己写了。
    想着自定义高些试着html页面当菜单UI,根据内部链接目标决定是打开文件,
    文件夹,特定系统命令,显示文件列表等。感觉有点像手机屏幕,主屏,扩展屏。
    以下是预览图:


    测试下好像没啥技术难题,结果默认boot.wim中没有带IE的web组件,
    作为正常系统下的开始菜单自由度非常高,XP上都可以呈现Windows 10开始菜单的效果了。
    下面试着看WEB组件是否好集成,不好放进去的话只能WIN32按自己的设计画UI了。

    2016-02-05 RC 1 更新:
    *请下载最新版




    已知问题:


    explorer.exe相关未实现功能


    改善计划:


    2015-09-29 Beta 2 更新:


    进PE,运行PExlorer.exe -install即可见桌面。(正常Windows下,请使用PExlorer.exe -desktop,免得注册表把Shell给改了)
    任务栏快捷启动按钮,第二个可以打开第三方的资源管理器。

    PExlorer/
    |_  PExlorer.exe
    |_  explorer.exe         (第三方资源管理器,我附件的例子是用explorer++.exe)
    |_  wallpaper.bmp  (壁纸文件,必须是bmp格式)

    已知问题:
    1.桌面图标无法拖拽      (WIn 7 PE,Win 8 PE正常,Win 10 PE内核需要补充文件)
    2.桌面右键菜单不完全  (正常系统下可以),选中文件菜单正常,可打开,复制,创建快捷方式等。
    3.属性菜单不可用。(PE内核缺少文件,正常系统下可以)
    4.托盘最后一个图标,悬停鼠标无法显示提示信息 (Win 7 正常,Win 10 下同样无法显示)

     PExlorer_x64.zip (1.42 MB, 下载次数: 317)


     PExlorer_x86.zip (1.21 MB, 下载次数: 250)



    -----------------------------------------------------------------------------------------------------------------------------------------------
    2015-09-28 Beta 1:
    后面还要编辑就懒得排版,随便写下。

    基本是初版没怎么修改,在系统安装盘的boot.wim下测试了下。
    任务栏基本OK,资源管理器依赖一些系统DLL运行会出错,
    所以做了个简单的组合:
    PExlorer/
    |_PExlorer.exe
    |_explorer.exe         (第三方资源管理器,我附件的例子是用explorer++.exe)
    |_msvcp140.dll        (Visual Studio 2015开发所要的运行库)
    |_vcruntime140.dll   (Visual Studio 2015开发所要的运行库)
    |_wallpaper.bmp  (壁纸文件,必须是bmp格式)

    进PE,运行PExlorer.exe -install即可见桌面。
    任务栏快捷启动按钮,第二个可以打开第三方的资源管理器。
    不用修改WIM文件,1MB多的文件就可以见桌面了。

    已知问题:
    1.桌面图标无法拖拽      (正常系统下可以)
    2.桌面右键菜单不完全  (正常系统下可以)
    3.托盘最后一个图标,悬停鼠标无法显示提示信息 (正常系统同样有问题)

    改善计划:
    各种设定json格式的配置文件导入。
    桌面壁纸的显示效果改进,目前为平铺。
    壁纸JPG支持(程序内部bmp位图化)。





    -----------------------------------------------------------------------------------------------------------------------------------------------
    预览:



    最近无意间看到PapyrOS,觉得好漂亮。
    就把曾经放弃过想法,自己做Windows的Shell把explorer替换掉。
    为什么放弃,很简单,做着做着发现好难,自己画任务栏可以,但是怎么让系统的程序到自己的程序来就成了问了,
    涉及到微软Shell的内部,也没有官方文档把Interface说明下。

    看了曾经泄露的Windows代码,下载WINCE的微软公开的源码,还是没搞出来。
    突然想到有款反编译NT内核的操作系统(大家都知道吧?ReactOS),找到了ROS Explorer,我看论坛也有人发过,
    最后更新好像是2004年,汗~好早,要是早点有人改造就好了!
    Windows 8.1之前的PE加explorer的都成型了,貌似Win10的也看有人做好了,也行开始的比较晚了吧。
    win32下,基本可以直接编译出来,但是有些问题,经过一周总算Windows 10 x64上把x64版本调试通了。

    开始菜单,快捷启动,任务进程管理,托盘,时钟,桌面都出来啦。

    在正常系统上,已经可以跑起来了。

    我对PE的定位是维护,所以要求不高。硬件支持好,体积小,带网络(官方的好像可以直接支持。)

    看了下论坛制作PE的方法,想着本来解压WIM增减文件就好,可以有步注册表中的C:\,D:\改X:\,删除 Interactive User的全部键值,
    目前还不清楚为什么。对驱动有影响么?谁知道给我说下。

    心目中的PE是,WIM增减内核必须文件,然后其他外置补充就好。看到explorer添加到WIM好像很恶心,所以打算做个外置就能直接运行的shell,即
    PExlorer (其实还有考虑过叫PESlorer (●'◡'●)  偷笑 )

    从boot.wim启动,发现运行不了,拷贝到本地系统C盘的system32下,可以出来了。
    估计是桌面,文件资源管理器的实现用了Shell接口组件,打算把资源管理器删除,单纯的TaskBar的实现,
    这部分基本上是纯C++的创建窗口,只依赖基本的系统文件,PE下可以直接运行的。

    • 快速启动栏初始宽度调整。

    • 托盘通知图标改回小图标。

    • 运行库静态链接,不需要额外DLL文件,WIN7,WIN8,WIN10的BOOT.WIM下可直接运行。
      (x86版已支持XP方式编译,不过没有官方XP的PE未测试)

    • 托盘声音,网络等图标实现

    • 桌面图标刷新后位置变化问题

    • 设定文件结构改进

    • 添加开始图标右键菜单

    • 接近正常系统的开始菜单

    • 托盘声音,网络等图标(内核添加文件的情况下可以显示)以及IME语言状态栏的显示。

    • DDE服务未实现,默认的打开功能还是回去调用explorer.exe (桌面双击以做处理,右键菜单[新建],[在新金进程中打开]会失败)

    • 我的电脑属性无法显示,以前是sysdm.cpl,现在因为可以从属性再到导航到控制面板等,其实和资源浏览器一样了。

    • 桌面[个性化]等菜单,是新的ms-settings:xxxx格式的,explorer.exe对应的处理没有实现。

    • 快捷方式的打开到所在位置。(可以写个小工具处理,微软相同的处理机制很难)

    • 开始运行输入:system32,ms-settings:xxxx等无法打开,DDE服务未实现。

    • 空白处右键菜单调用命令为%V的命令无法调用,比如:git bash。(在命令窗口中打开菜单,做了特殊处理可以使用)

    • PE系统下,桌面图标无法拖拽  (WIn 7,Win 8(.1) 的boot.wim正常,Win 10的boot.wim不可用。部分网友制作的PE可以使用,有explorer.exe都可以。)

    • 桌面图标位置未作保存处理,刷新后会在顶部横向排列。

    • 任务栏使用小图标时,快速启动栏图标偏上。

    • 桌面新建文件/文件夹,无法直接到重命名的编辑状态,而是直接创建。

    • 本程序的资源管理器,导航栏基本无效。

    • 开始菜单,一些动态加载内容的菜单容易出错。

    • 属性菜单不可用。(boot.wim PE内核缺少文件,正常系统下可以,但是显示位置为左上角或者右上角)

    • 各种设定json格式的配置文件导入->PExlorer.jcfg。

    • 壁纸JPG格式支持。

    • 解决任务栏文字颜色设定的技术问题。

    • 可自定义任务栏部分属性(字体颜色,背景颜色,高度,图标大小等)。

    • 可自定义第三方文件资源管理器。

    • 可自定义壁纸路径。

    • 支持第三方开始菜单软件start10(程序名需改为explorer.exe)。 <---当前版的start10无效了。

    • 桌面菜单,桌面文件菜单完善。

    • 解决托盘最后一个图标,悬停鼠标无法显示提示信息问题。 (遗留问题)

    • 去掉快速启动栏快捷方式箭头。(网友建议)

    • 快速启动栏动态更新。(网友建议)

    • 追加-winpe参数,可以自定义开始菜单关机,重启命令。(网友建议)

    • 任务栏字体显示不正常。(网友建议)

    • 不再支持XP系统。

    • 开始菜单增强。

    • 显示方式可设置拉伸(新增/默认),平铺,居中(新增)。

    • 响应分辨率变化。


    1. "::桌面":

    2.   {

    3.     "显示样式注释":"0-拉伸(默认值);1-平铺;2-居中",

    4.     "::桌面壁纸显示样式":0,

    5.    }










关于源代码,90%来自ROS Explorer。 http://www.foxplanet.de/explorer/ 此项目已经提供了源代码。  


打赏

本文链接:https://www.kinber.cn/post/4400.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客