无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站Win To Go 极致利器(IXUNCIS固态U盘)广告联系 微信:wuyouceo QQ:184822951
楼主: slore

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

    [复制链接]
 楼主| 发表于 2015-9-29 14:58:59 | 显示全部楼层
2010smilewit 发表于 2015-9-29 13:11
VC2015,真是太新了。不知道什么原因,我的WES7上安装不上VC2015Redistributable

工程降级到VS2012编译了下,WIN7 PE~WIN10 PE下都可以运行了。
目前公司的网络不能上传附件。
回复

使用道具 举报

发表于 2015-9-29 15:58:14 | 显示全部楼层
slore 发表于 2015-9-29 11:44
我用Visual Studio 2015开发的,需要VC 2015 Redistributable。

我测试的是Win 10 的PE,基本CRT运行 ...

考虑静态连接,就不用装那么多VC-DLL了。
回复

使用道具 举报

发表于 2015-9-29 16:26:49 | 显示全部楼层
不支持XP系统吗? 2015-09-29_162447.png
回复

使用道具 举报

发表于 2015-9-29 16:39:54 | 显示全部楼层
完成度很高啊!
1.桌面图标无法拖拽      (正常系统下可以)
Win10PE X86,可以拖拽。

点评

我是直接启动BOOT.WIM测试的,就是内核不增加文件的前提。 只要补充上特定的DLL到内核,桌面操作会更好些。 目前只打算把任务栏先搞好。  详情 回复 发表于 2015-9-29 16:52
回复

使用道具 举报

发表于 2015-9-29 16:45:07 | 显示全部楼层
VS2012以上的默认都不支持XP系统的(需要在编译的时候选择XP的支持)

点评

谢谢提醒,Debug我修改成/MT了,Release版忘了调整,测试了下确实可以,而且体积也不大,压缩后600多KB。 晚上回去更新下,快速启动栏图标大小,托盘大小,XP,WIN7,WIN8,WIN10 PE支持。。。  详情 回复 发表于 2015-9-29 17:27
这年头X86都不包括XP了  发表于 2015-9-29 16:48
回复

使用道具 举报

 楼主| 发表于 2015-9-29 16:52:02 | 显示全部楼层
sp_star 发表于 2015-9-29 16:39
完成度很高啊!
1.桌面图标无法拖拽      (正常系统下可以)
Win10PE X86,可以拖拽。

我是直接启动BOOT.WIM测试的,就是内核不增加文件的前提。
只要补充上特定的DLL到内核,桌面操作会更好些。
目前只打算把任务栏先搞好。

点评

原生的桌面也需要添加文件才能拖动,这个应该不算问题。 Win10PE原生任务栏: [attachimg]228219[/attachimg] 你的任务栏: [attachimg]228220[/attachimg]  详情 回复 发表于 2015-9-29 17:26
回复

使用道具 举报

发表于 2015-9-29 17:26:49 | 显示全部楼层
本帖最后由 sp_star 于 2015-9-29 17:29 编辑
slore 发表于 2015-9-29 16:52
我是直接启动BOOT.WIM测试的,就是内核不增加文件的前提。
只要补充上特定的DLL到内核,桌面操作会更好 ...

原生的桌面也需要添加文件才能拖动,这个应该不算问题。
Win10PE原生任务栏:
捕获1.PNG
你的任务栏:
捕获2.PNG

可以照着原生的改,比如只显示图标,图标稍微小点。主要难点可能是托盘图标了。还有能不能使用第三方的开始菜单?


点评

本来整个任务栏设置的黑色,任务栏字也是黑色就看不到了。。。就又改回白色了。 想过去掉提示,但是这个任务栏不像WIN10的合并,并且自己的有预览, 相同程序打开的话,没有字不好看了。 图标大小我可以自由控制  详情 回复 发表于 2015-9-29 22:55
回复

使用道具 举报

 楼主| 发表于 2015-9-29 17:27:05 | 显示全部楼层
chenall 发表于 2015-9-29 16:45
VS2012以上的默认都不支持XP系统的(需要在编译的时候选择XP的支持)

谢谢提醒,Debug我修改成/MT了,Release版忘了调整,测试了下确实可以,而且体积也不大,压缩后600多KB。
晚上回去更新下,快速启动栏图标大小,托盘大小,XP,WIN7,WIN8,WIN10 PE支持。。。
回复

使用道具 举报

 楼主| 发表于 2015-9-29 22:50:23 | 显示全部楼层
2010smilewit 发表于 2015-9-29 11:01
打不开呀,我的原生WINPE3.0年少了点东西。

Beta2修改成静态连接运行库,请再确认下。
回复

使用道具 举报

 楼主| 发表于 2015-9-29 22:55:38 | 显示全部楼层
sp_star 发表于 2015-9-29 17:26
原生的桌面也需要添加文件才能拖动,这个应该不算问题。
Win10PE原生任务栏:

本来整个任务栏设置的黑色,任务栏字也是黑色就看不到了。。。就又改回白色了。
想过去掉提示,但是这个任务栏不像WIN10的合并,并且自己的有预览,
相同程序打开的话,没有字不好看了。
图标大小我可以自由控制,Beta2已经把托盘改小了。

点评

XP任务栏比较立体,也比较窄,加上文字看得还行。 你这个是平面的,看起来有点怪....没有预览,可以像快速启动那样,加提示信息。  详情 回复 发表于 2015-9-29 23:58
回复

使用道具 举报

发表于 2015-9-29 23:04:43 | 显示全部楼层
本帖最后由 tegl 于 2015-9-29 23:10 编辑

如图,Beta2在64位8PE下出错,按确定后可以打开

1.png

点评

资源管理器功能依赖系统Shell组件,我们没有管,用explroer++代替了。 你的系统已经存在Shell,直接运行当文件管理器会错正常, 请用cmd下输入PExlorer.exe -install 带参数运行,删除默认shell,安装本文件。  详情 回复 发表于 2015-9-29 23:11
回复

使用道具 举报

 楼主| 发表于 2015-9-29 23:11:16 | 显示全部楼层
tegl 发表于 2015-9-29 23:04
如图,Beta2在64位8PE下出错

资源管理器功能依赖系统Shell组件,我们没有管,用explroer++代替了。
你的系统已经存在Shell,直接运行当文件管理器会错正常,
请用cmd下输入PExlorer.exe -install 带参数运行,删除默认shell,安装本文件。

PExlorer.exe -desktop也可以运行,但是如果有别的SHELL窗口存在,
点击桌面的话,会认为是一个普通窗口,放置到最前面,挡住了其他窗口,
当然任务栏还是可以切换回去的。

点评

可以了,非常感谢,软件很好用  发表于 2015-9-29 23:13
回复

使用道具 举报

发表于 2015-9-29 23:58:51 | 显示全部楼层
slore 发表于 2015-9-29 22:55
本来整个任务栏设置的黑色,任务栏字也是黑色就看不到了。。。就又改回白色了。
想过去掉提示,但是这个 ...

XP任务栏比较立体,也比较窄,加上文字看得还行。
你这个是平面的,看起来有点怪....没有预览,可以像快速启动那样,加提示信息。
回复

使用道具 举报

发表于 2015-9-30 09:36:51 | 显示全部楼层
感謝分享,希望LZ繼續努力,早日見到穩定版
回复

使用道具 举报

发表于 2015-9-30 10:05:27 | 显示全部楼层
两个不算问题:
1. 03,没显示喇叭. 这个基本都是用在新PE,我看你图片有,支持WIN10就行.

2. 内置图标太大, 16,32,就可以. 起码可以减小200K
回复

使用道具 举报

发表于 2015-9-30 12:19:45 | 显示全部楼层
不错,可以运行桌面了,文件管理器有了,只是还不够完善,希望更好些……

遇到问题:
1、无法关机
2、界面是英文的
3、很多功能打不开,希望能够都添加进来。
2015-09-30_121145.png
2015-09-30_121640.png

点评

文件管理器,请用开始菜单右边的第二个按钮,调用同目录的第三方explorer.exe, 我例子里面带的是explorer++.exe 关机很好处理,调用PE的命令接口即可,开始菜单部分是默认的,还没有处理。 关于界面,英文和简  详情 回复 发表于 2015-9-30 12:40
回复

使用道具 举报

 楼主| 发表于 2015-9-30 12:40:13 | 显示全部楼层
2010smilewit 发表于 2015-9-30 12:19
不错,可以运行桌面了,文件管理器有了,只是还不够完善,希望更好些……

遇到问题:

文件管理器,请用开始菜单右边的第二个按钮,调用同目录的第三方explorer.exe,
我例子里面带的是explorer++.exe
关机很好处理,调用PE的命令接口即可,开始菜单部分是默认的,还没有处理。

关于界面,英文和简体中文的资源,你的系统内核语言是啥?

点评

PE内核是英文的,我没有安装中文,要用系统的? 我只改了这两个 dism /image:E:\WINPE3.0\boot /set-syslocale:zh-cn dism /image:E:\WINPE3.0\boot /set-userlocale:zh-cn  详情 回复 发表于 2015-9-30 13:22
回复

使用道具 举报

发表于 2015-9-30 13:22:30 | 显示全部楼层
slore 发表于 2015-9-30 12:40
文件管理器,请用开始菜单右边的第二个按钮,调用同目录的第三方explorer.exe,
我例子里面带的是explore ...

PE内核是英文的,我没有安装中文,要用系统的?
我只改了这两个
dism /image:E:\WINPE3.0\boot /set-syslocale:zh-cn
dism /image:E:\WINPE3.0\boot /set-userlocale:zh-cn

点评

可以用资源管理器吧,1033英文的程序资源删除,菜单,对话框,字符串。。。 但是PE内核必须要用中文字体,否则是【??】  详情 回复 发表于 2015-9-30 20:45
回复

使用道具 举报

 楼主| 发表于 2015-9-30 20:45:35 | 显示全部楼层
2010smilewit 发表于 2015-9-30 13:22
PE内核是英文的,我没有安装中文,要用系统的?
我只改了这两个
dism /image:E:\WINPE3.0\boot /set-sy ...

可以用资源管理器吧,1033英文的程序资源删除,菜单,对话框,字符串。。。
但是PE内核必须要用中文字体,否则是【??】
回复

使用道具 举报

发表于 2015-9-30 22:13:03 | 显示全部楼层
希望界面整体可以缩放,不然在分辨率很低(800x600)的03PE下会显示不全或很难用。。。。。。
回复

使用道具 举报

发表于 2015-9-30 23:02:29 | 显示全部楼层
给力!!!!!!!!!!!!
回复

使用道具 举报

发表于 2015-10-1 12:19:45 | 显示全部楼层
其实我也做了个类似的东西,不过有些问题没有办法解决,比如调试会造成退出奔溃(垃圾com),还有一些气泡暂时提示没有办法解决。个人觉得,微软的编程很难搞,没有linux简单,它把东西搞得很复杂。
回复

使用道具 举报

发表于 2015-10-1 13:21:36 | 显示全部楼层
我只能说这件事                       功德无量了.
回复

使用道具 举报

发表于 2015-10-1 17:08:41 | 显示全部楼层
刚刚测试了下,感觉问题还是比较多。

点评

方便说下什么问题么?如果是文件管理器这部分, 这里一点都还没开始动,所以用了explorer++.exe,这个 也是开源项目要集成自然能也能改,其实只是初版,主要 确认了下任务栏的基础功能。  详情 回复 发表于 2015-10-1 20:21
回复

使用道具 举报

 楼主| 发表于 2015-10-1 20:21:37 | 显示全部楼层
四海皆狂龙 发表于 2015-10-1 17:08
刚刚测试了下,感觉问题还是比较多。

方便说下什么问题么?如果是文件管理器这部分,
这里一点都还没开始动,所以用了explorer++.exe,这个
也是开源项目要集成自然能也能改,其实只是初版,主要
确认了下任务栏的基础功能。

点评

我是常规win7系统测试,有explorer下,首先它无法与默认的explorer一起工作,另外托盘并没有枚举完全。我之前也做的一个托盘程序,但是情况一样,xp问题不算大,但是win7还是有些问题的。 文件管理器工程有些大,  详情 回复 发表于 2015-10-2 01:08
托盘图标貌似还是无法枚举完全,我做的一个小托盘程序在win7也是同样没有枚举完全,xp正常枚举完全,可见win7以后的有些区别。 另外如果存在explorer,那么有问题,这个在非pe下测试是这样的 。  详情 回复 发表于 2015-10-2 00:29
回复

使用道具 举报

发表于 2015-10-1 21:54:03 | 显示全部楼层
shell和文件管理完全没必要弄到一起,这一点一直想抽m$的explorer
回复

使用道具 举报

发表于 2015-10-2 00:29:06 | 显示全部楼层
slore 发表于 2015-10-1 20:21
方便说下什么问题么?如果是文件管理器这部分,
这里一点都还没开始动,所以用了explorer++.exe,这个
...

托盘图标貌似还是无法枚举完全,我做的一个小托盘程序在win7也是同样没有枚举完全,xp正常枚举完全,可见win7以后的有些区别。
另外如果存在explorer,那么有问题,这个在非pe下测试是这样的 。
回复

使用道具 举报

发表于 2015-10-2 01:08:07 | 显示全部楼层
slore 发表于 2015-10-1 20:21
方便说下什么问题么?如果是文件管理器这部分,
这里一点都还没开始动,所以用了explorer++.exe,这个
...

我是常规win7系统测试,有explorer下,首先它无法与默认的explorer一起工作,另外托盘并没有枚举完全。我之前也做的一个托盘程序,但是情况一样,xp问题不算大,但是win7还是有些问题的。

文件管理器工程有些大,我的感觉是,用第三方也是可以的,尽管还是无法匹敌微软自家的。完整桌面+完整文件管理器,还不如自己开发个linux桌面发行版了。我的意思,这个难度,与收获,是不太值得的,并且微软的系统,比较坑程序员,只要它升级系统,就得坑。比如上面说的,xp可以正常枚举的,win7后面的就不正常了,关键是微软并不开放源码,也不提供正常的api,网上的一些桌面多数也是通过hack所得,实现上是很难比较微软自家的,尽管微软的也不怎么样,但是hack来的总是有些小问题。

其实我认为,比较重要的是任务栏上东西,和托盘上的东西,其它都不重要,甚至连开始菜单也都不重要。但是这两件东西反而是比较难搞的。

点评

托盘图标,完全枚举,不知道你指的是哪个图标?网络?声音?,这些是explorer进程自己做的,不是其他的程序通知到托盘的,所以不会显示,需要自己实现,也比较简单,就是监控声音状态,网络状态变化而变动图标需要写  详情 回复 发表于 2015-10-2 10:10
如果PE上使用,托盘图标就那么几个,不一定要枚举,配置文件定义也行啊。  详情 回复 发表于 2015-10-2 09:58
回复

使用道具 举报

发表于 2015-10-2 09:58:26 | 显示全部楼层
四海皆狂龙 发表于 2015-10-2 01:08
我是常规win7系统测试,有explorer下,首先它无法与默认的explorer一起工作,另外托盘并没有枚举完全。我 ...

如果PE上使用,托盘图标就那么几个,不一定要枚举,配置文件定义也行啊。

点评

我发现一下重复发多了两回复。 托盘图标是动态的,并且有通知,气泡。之所以这个必要,是因为有些程序只能从这里呼出弹出,比如网络连接,qq等都是往那去的。如果不是这样,我都懒得搞这托盘,感觉托盘只不过是任务  详情 回复 发表于 2015-10-2 11:07
回复

使用道具 举报

 楼主| 发表于 2015-10-2 10:10:07 | 显示全部楼层
四海皆狂龙 发表于 2015-10-2 01:08
我是常规win7系统测试,有explorer下,首先它无法与默认的explorer一起工作,另外托盘并没有枚举完全。我 ...

托盘图标,完全枚举,不知道你指的是哪个图标?网络?声音?,这些是explorer进程自己做的,不是其他的程序通知到托盘的,所以不会显示,需要自己实现,也比较简单,就是监控声音状态,网络状态变化而变动图标需要写些代码,单纯的加2个图标,点击可以弹出菜单或某个应用,自己可以做主的。
这里是其他的程序要到创建托盘才会出来,还有程序处理了假死进程的残留图标所以如果是无Windows界面的也会不显示(服务启动的图标),这个是MS的shell没有的,我觉得也没要,回头删除掉。

PExlorer -desktop参数,即可与Windows的Explorer共存,并且在Windows环境下的话,
桌面操作比较完整,打开我的电脑也和正常的一样,但是存在默认排列式样的问题。
任务栏,新的进程打开后,有时候在任务栏切换会强制跳到系统的任务栏,一旦某个shell进程退出了,
在那个任务栏打开的程序,最小化会缩到左下角,就是没有任务栏的状态。
毕竟任务栏创建后,要注册到系统,告诉所有应用我才是windows的Taskbar,你的消息要发送给我,
要共存的前提就不对吧,这不是不通常的窗口,是特定的,Windows只能有一个有效的。
你说去游乐园,有一个收费窗口了,进去了再一个收费窗口要你买票,合适么?
这个程序没有用到Hack。

改造这个程序的目的也是想知道Windows Shell的接口各个部分如何自己能改。
比如现在如果我GDI,或者DirectUI方面有技术的话,任务栏和托盘完全可以
不用ToolBar,自己用一种新的方式呈现了。

第一阶段,只是让PE加shell最简单话,维护方便就够的角度出发,不用考虑注册表,
不用考虑dll依赖,600多KB的压缩文件解压出来,全版本的PE运行即可。
当然添加MS自身的Shell效果最好,如果已经加好的PE就不用考虑的。

点评

这个任务栏和托盘实现,基本第三方shell代码都是差不多的。我也参考过好几份开源代码,个人觉得不算简单。微软的shell,也不是说最好,只是我们要跟着它屁股转,否则功能缺失。任务栏托盘,我就是用了dui来做,但是  详情 回复 发表于 2015-10-2 11:29
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2022-9-28 08:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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