无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: slore

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

    [复制链接]
 楼主| 发表于 2018-3-31 01:15:22 | 显示全部楼层
xintiandi 发表于 2018-2-25 11:17
今天有时间再次测试了一下控制面板的调用,win7和win8。
1、命令行运行control.exe
2、点击设置中的控制 ...

控制面板我处理了下,PE来说没有用。你这个WSE7可以试试。

开始菜单,参照 关机,重启写个 control命令可以调用control.exe了。

  1.       "shutdown": {
  2.          "command": "Wpeutil.exe",
  3.          "parameters": "Shutdown"
  4.       },
  5.       "control": {
  6.          "command": "control.exe"
  7.       }
复制代码

点评

感谢楼主的无私奉献,刚刚测试了一下,wes7和wes8都测试了一般,基本完美了。之前的问题都修复了。 1、但我自制wes7和wes8只要是不带explorer自启动的系统,winxshell中,资源管理器的最小化按钮就没用,点击快速启  详情 回复 发表于 2018-3-31 20:40
回复

使用道具 举报

发表于 2018-3-31 19:35:20 | 显示全部楼层
这次赶在了l大更新pe前,辛苦了。
回复

使用道具 举报

发表于 2018-3-31 20:40:15 | 显示全部楼层
本帖最后由 xintiandi 于 2018-3-31 20:55 编辑
slore 发表于 2018-3-31 01:15
控制面板我处理了下,PE来说没有用。你这个WSE7可以试试。

开始菜单,参照 关机,重启写个 control命 ...


感谢楼主的无私奉献,一个小众软件坚持更新了几年,实属不易,就算开源了,也不一定能完善到现在的程度,涉及和系统交互的操作我个人觉得很难的,虽然我也会改点代码,用c#写点小程序,但是windows api相关的东西我也看不懂。
刚刚测试了一下,wes7和wes8都测试了一遍,基本完美了。之前的问题都修复了,准备正式集成到系统中替代explorer使用。
1、但我自制wes7和wes8只要是不带explorer自启动的系统,winxshell中,资源管理器的最小化按钮就没用,点击快速启动栏的,最小化所有窗口是可以的。我尝试先手动运行explorer后,在运行winxshell也无效,仅是资源管理器的最小化按钮无效,,其他软件的最小化正常,包括任务管理器的最小化也正常。不知道是哪个地方的问题,可能还是和初始化桌面有关。
123.gif
2、只要是有桌面,带explorer启动的系统,结束explorer后,在启动winxshell,资源管理器的最小化按钮就没有问题。
3、wes8因内置的组建多,快速启动栏处会多出show desktop和 windows switcher 2个按钮,点击没有看到效果,打开的窗口也无法隐藏显示桌面,可能和没有加载explorer有关。
4、下面的这个问题不知道算不算bug,wes8输入法图标可以拖动,就是前面会多出一个透明框,应该是拖动的鼠标跑焦了,wes7正常。
456.gif

点评

谢谢详细的问题报告。 问题1,这个我已经解释过了,资源管理器是利用, 打开对话框 进行加工而来的。 记事本->文件->打开 这个对话框是模态的,不在任务栏显示,也不能最小最大化,我强制修改窗口风格式样  详情 回复 发表于 2018-4-1 20:08
回复

使用道具 举报

发表于 2018-4-1 19:29:58 | 显示全部楼层
真的很敬佩楼主的技术和毅力,以及无私奉献的精神!恭喜楼主晋升为爸爸,也祝令郎健康快乐地成长!
上一次我报告的那个bug已经完美解决,但是有产生了一个新的问题:运行一段时间后,会弹出下面这个对话窗,这一次点击确定,或者关闭对话窗,并不会像上一次那样,导致winxshell崩溃。
另:我是直接在win10系统使用(而非pe),我自己用C语言编了个小程序,命名为explorer.exe,来调用楼主的winxshell

  1. #include <stdlib.h>
  2. void main(void)
  3. {
  4. system("cd C:\\Progra~1\\WinXShell_x64\\ & start WinXShell.exe -winpe & start WinXShell.exe -ui -jcfg UI_WIFI\\main.jcfg -hidewindow & start WinXShell.exe -ui -jcfg UI_Volume\\main.jcfg -hidewindow");
  5. }
复制代码

我想说的就是,楼主能让winxshell一次启动多个jcfg吗?这样调用起来方便一些
再次感谢!
Juri-yang.png

点评

主要也是WIFI和声音状态栏,其他的都是其他菜单访问的。 对于PE,有的2个都不带,有的只有声音没网络,有的有网络。 托盘相关的我是打算合并成一个进程进行管理,代码里面也写了, 有个ui管理进程,但是它没有  详情 回复 发表于 2018-4-1 20:20
回复

使用道具 举报

 楼主| 发表于 2018-4-1 20:08:14 | 显示全部楼层
xintiandi 发表于 2018-3-31 20:40
感谢楼主的无私奉献,一个小众软件坚持更新了几年,实属不易,就算开源了,也不一定能完善到现在的程度 ...

谢谢详细的问题报告。

问题1,这个我已经解释过了,资源管理器是利用,
打开对话框 进行加工而来的。

记事本->文件->打开

这个对话框是模态的,不在任务栏显示,也不能最小最大化,我强制修改窗口风格式样,
好像没有开启DWM.exe的状况下可以用,开了就用不了。在PE下,我是抓取鼠标消息,
当在最小化按钮的位置时,我来最小化,就像 显示桌面 可以一样,其实点击任务栏上的
任务窗口,和右键,也可以最小化。
(鼠标按下就最小化,通常的其实是鼠标弹起才最小化,略微差异不过可以最小化还是可以接受的)

explorer.exe运行一次后就可以,看来还是有什么东西没有做,
不过这个很难搞清楚。
我想看看是否有其他的消息可以参考,你如果可以运行
Microsoft Spy++ ,监控下窗口消息,看看有什么消息是只有这个最小化按钮点击时触发就好了。

曾今你给我过
wes7.iso
wes7sp1&pos中文语言包lp.cab
我想尝试在WES7环境下试试,但是我加载WES7.ISO后无法安装,
提示缺乏对应的语言包,但是这个语言包我不知道怎么放进ISO中。

3.快速启动栏多的图标是QuickLaunch文件夹下的,他们不是通常的lnk快捷方式,
是通过shell调用的,所以无效。
你从QuickLaunch文件夹中删除的话,就可以了,但是你和原生explorer混在的话,
删除并不好,我倒是可以添加一个选项,不显示非lnk的图标,或者不显示指定名称的图标。

4.这个怎么说呢,按理说应该是这个输入法状态栏跟着拖动,但是好像坐标计算错误了,
WES7正常,WES8不正常这个现象来看,不是我能控制的了。即使我想修正也有点无从下手了。

点评

今天用spy++测试了一下,都关闭了dwm服务的 下图是不能最小化系统的2个截图,前面是打开了窗口未点击最小化的状态,后面的是点击最小化之后的状态 [attachimg]369329[/attachimg] [attachimg]369330[/attachimg]  详情 回复 发表于 2018-4-2 11:28
回复

使用道具 举报

 楼主| 发表于 2018-4-1 20:20:05 | 显示全部楼层
本帖最后由 slore 于 2018-4-2 08:22 编辑
V587 发表于 2018-4-1 19:29
真的很敬佩楼主的技术和毅力,以及无私奉献的精神!恭喜楼主晋升为爸爸,也祝令郎健康快乐地成长!
上一次 ...


主要也是WIFI和声音状态栏,其他的都是其他菜单访问的。
对于PE,有的2个都不带,有的只有声音没网络,有的有网络。

托盘相关的我是打算合并成一个进程进行管理,代码里面也写了,
有个ui管理进程,但是它没有按我想象的工作,我就屏蔽掉了先(当时只有WIFI 1个窗口也没什么必要)。

另外,这2个模块我单独出去,因为有些人还是喜欢用原版的explorer,
所以他们在explorer的shell环境下也可以工作,所以我是希望按需使用,
要带个参数不是难事,但是我得考虑下怎么设计它。


截图中的这个错误是在无法定位,代码异常系确实处理的不好,
也没有日志,这个不太好查。我编译一个带DEBUG信息的版本,
当出现这个错误的时候,你从任务管理器,选中
创建转存文件(我可以试试分析这个DMP文件,在什么方面出错)

WinXShell_debug_x64.zip (1.97 MB, 下载次数: 17)

点评

I do not know how to integrate WinXShell into the system.  详情 回复 发表于 2018-4-4 15:30
回复

使用道具 举报

发表于 2018-4-1 22:56:39 | 显示全部楼层
Where do we need to dispose of the files I could not run

点评

i don't know your locale language,the x.jcfg has Chinese, maybe cause error.try to use the en_US config file to overwrite them, and should work. attached in #287 en_US_config.zip  发表于 2018-4-2 08:21
any path should work.where you putted it in?  发表于 2018-4-2 05:39
回复

使用道具 举报

发表于 2018-4-2 11:28:41 | 显示全部楼层
本帖最后由 xintiandi 于 2018-4-3 20:40 编辑
slore 发表于 2018-4-1 20:08
谢谢详细的问题报告。

问题1,这个我已经解释过了,资源管理器是利用,


今天用spy++测试了一下,都关闭了dwm服务的,如果是在无法最小化的系统中,手动运行一次explorer后,不管explorer是否退出,在运行winxshell仍然是不行的。下面提供了2种系统,点击最小化前后的截图,不知道能否帮助定位到问题

下图是不能最小化系统的2个截图,前面是打开了资源管理器窗口未点击最小化的状态,后面的是点击最小化之后未成功的状态

下图是可以最下化系统的截图,前面是打开了资源管理器窗口未点击最小化的状态,后面的是点击最小化之后成功的状态

点评

F3选择winxshell打开的窗口,右键查看 message会一直滚动,主要看鼠标点击最小化按钮,有什么消息没。  发表于 2018-4-2 11:56
回复

使用道具 举报

发表于 2018-4-2 19:48:34 | 显示全部楼层
楼主您好!
上一次我报告的那个bug,还没有再次出现过。我又碰到了新的bug
点击确定或关闭窗口,不会导致crash

我还有一个不情之请,楼主可以发布一个,在win7系统下,右键单击桌面,弹出对“桌面”文件夹右键的普通文件夹菜单,的特别版吗?
谢谢!
Juri-yang.png

点评

shellclasses?你是操作了开始菜单的东西吧。这个建议用其他开始菜单工具代替啊。  详情 回复 发表于 2018-4-3 00:49
回复

使用道具 举报

发表于 2018-4-2 23:19:43 | 显示全部楼层
本帖最后由 xintiandi 于 2018-4-3 20:41 编辑

F3没有反应,没有完全理解你的意思,我感觉就是监听操作吧,我用消息记录的方式获取了一些信息给你参考,应该能发现问题所在。先看下面的动画,直接点击最小化按钮,无法最小化,但是我用句柄操作工具可以。


下面附上对比图,左边为winxshell的最小化操作,右图为直接句柄工具的最小化操作

点评

是的,就是要看这个消息。 不过需要特定鼠标点击最小化时的消息,你演示的时候,窗口没选中你点击过去触发了 WM_ACTIVATE,但是是激活就出发,不能唯一确定,下面的WM_NOFITY,1148我可以看看。 你选中窗口后,  详情 回复 发表于 2018-4-3 00:48
回复

使用道具 举报

 楼主| 发表于 2018-4-3 00:46:26 | 显示全部楼层
反馈小问题修正版本v3.0.1
WinXShell_x64.zip (2.48 MB, 下载次数: 7)
回复

使用道具 举报

 楼主| 发表于 2018-4-3 00:48:26 | 显示全部楼层
本帖最后由 slore 于 2018-4-3 19:57 编辑
xintiandi 发表于 2018-4-2 23:19
F3没有反应,没有完全理解你的意思,我感觉就是监听操作吧,我用消息记录的方式获取了一些信息给你参考,应 ...


是的,就是要看这个消息。
不过需要特定鼠标点击最小化时的消息,你演示的时候,窗口没选中你点击过去触发了
WM_ACTIVATE,但是是激活就出发,不能唯一确定,下面的WM_NOFITY,1148我可以看看。

你选中窗口后,再点击下 最小化按钮确认下消息。

2018-04-03 强制处理最小化按钮版本(WES)
WinXShell_x86_bin.zip (941.54 KB, 下载次数: 3)

点评

下图左边为winxshell,选定窗口,在点击最小化失败的记录,右图为选定窗口后,句柄工具操作最小化的记录。 [attachimg]369372[/attachimg] [attachimg]369373[/attachimg]  详情 回复 发表于 2018-4-3 13:04
回复

使用道具 举报

 楼主| 发表于 2018-4-3 00:49:05 | 显示全部楼层
V587 发表于 2018-4-2 19:48
楼主您好!
上一次我报告的那个bug,还没有再次出现过。我又碰到了新的bug
点击确定或关闭窗口,不会导致 ...

shellclasses?你是操作了开始菜单的东西吧。这个建议用其他开始菜单工具代替啊。
回复

使用道具 举报

发表于 2018-4-3 13:04:21 | 显示全部楼层
本帖最后由 xintiandi 于 2018-4-3 20:40 编辑
slore 发表于 2018-4-3 00:48
是的,就是要看这个消息。
不过需要特定鼠标点击最小化时的消息,你演示的时候,窗口没选中你点击过去触 ...


下图左边为winxshell,选定窗口,在点击最小化失败的记录,右图为选定窗口后,句柄工具操作最小化的记录。
具体文件见附件

154.rar

1.66 KB, 下载次数: 3, 下载积分: 无忧币 -2

124.rar

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

点评

DWM无效的时候,PE是自动可以最小化的,不用做任何处理。结果WES下DWM无效也不能正常最小化,所以没有效果,晚上给你加个参数强制处理最小化按钮的版本试试。  发表于 2018-4-3 17:24
如果还不行的话,我晚上给你发一个带LOG信息的版本,看看是哪里没有执行到。  发表于 2018-4-3 15:35
0003014A S WM_SETCURSOR hwnd:0003014A nHittest:HTMINBUTTON wMouseMsg:WM_LBUTTONDOWN 我就是用这个判断的,按理说应该能用的,这个HOOK当DWM有效,且System32目录下有dwm.exe才触发,是不是没有?创建个试试。  发表于 2018-4-3 15:35
回复

使用道具 举报

发表于 2018-4-3 18:26:23 | 显示全部楼层
那晚上试试吧。system32下面有 dwm.exe,默认这个系统都是带的,我只是在服务里面禁用了,dwm对应的服务。默认时启动的。

点评

如果可以的話,把你spy++消息截图不用插入帖子内容,显示为附件链接就行了,有点大,手机刷的时候页面拉的有点长。。。  发表于 2018-4-3 20:04
#285的附件你试试看。  发表于 2018-4-3 19:57
回复

使用道具 举报

发表于 2018-4-3 20:22:49 | 显示全部楼层
本帖最后由 xintiandi 于 2018-4-3 20:41 编辑

可以最小化了。wes7和wes8 x86都测试通过。x64,暂时没有装对应的版本,没有测试。之前的那些插入的图,我删除了。有点影响网页刷新。

评分

参与人数 1无忧币 +5 收起 理由
slore + 5 感谢详细反馈问题!

查看全部评分

回复

使用道具 举报

发表于 2018-4-3 21:41:17 | 显示全部楼层
本帖最后由 xintiandi 于 2018-4-3 23:12 编辑

wes7下测试完美,wes8输入法拖动跑焦的问题和输入法有关,我换一个输入法就没有出现了。

刚才测试又发现一个问题,我开机直接运行winxshell,点击开始菜单设置中的控制面板,居然没反应。点击几次都没有用,我打开cmd 直接输入control.exe也没有反应。启动后在winxshell不退出的情况下第一次运行explorer.exe,刚好一分钟才会加载完界面,并且加载出来后,之前操作的点击控制面板的界面也一起出来了。只要explorer运行一次后,在到winxshell中,点击控制面板或者运行control都没有问题了,也很快。只有重启后,问题又出来了。那就说明wes8中运行explorer后,可能附带有初始化的操作。否则,winxshell中点击控制面板无法运行。必须等待explorer执行或者其他程序行始化后,才响应。
我用第三方文件管理器,直接调用打开控制面板也要等待1分半的时间。看来wes8和wes7在加载桌面初始化可能不一样。

如果启动后,不运行winxshell,而是直接运行control就不会有问题。如果先运行winxshell,在运行control,最后运行explorer会导致窗口要延时1分钟弹出。并且容易卡死。
如果单独运行winxshell后,只点击控制面板或运行control要等1分半钟,反复测试几次都是这样,基本上刚好1分半界面才会出来,仿佛又是之前的出现过的问题。
如果运行winxshell后,只运行explorer,需要等待30秒弹出窗口,卡主加载30秒,刚好1分钟,explorer的界面加载完。
看来是运行winxshell后,对运行explorer有影响,间接导致对control有影响,要等1分半,才能出来控制面板的界面,其他功能没有发现受影响,毕竟运行控制面板必须要explorer做支持才能运行,wes8中的explorer可能和winxshell有一定的冲突。

点评

要不和之前一样,我运行的时候先隐藏运行下control.exe然后把它退出后再启动shell可能就好了。不过我正常系统测试启动的是explorer.exe不是control.exe,你能抓下启动的进程,窗口标题,类信息么  发表于 2018-4-5 09:38
回复

使用道具 举报

发表于 2018-4-4 15:30:31 | 显示全部楼层
slore 发表于 2018-4-1 20:20
主要也是WIFI和声音状态栏,其他的都是其他菜单访问的。
对于PE,有的2个都不带,有的只有声音没网络 ...

I do not know how to integrate WinXShell into the system.

点评

normal windows or Windows PE? for PE, usally add startup in pecmd.exe's start.ini.  发表于 2018-4-5 09:39
回复

使用道具 举报

发表于 2018-4-5 13:31:51 | 显示全部楼层
启动进程信息有办法抓取吗,没有找到合适的工具,你可以先按照之前说的方式试试,或者加入调试信息,看是否能定位的准确的信息。
回复

使用道具 举报

发表于 2018-4-5 14:13:15 | 显示全部楼层
谢谢楼主的分享!!
回复

使用道具 举报

 楼主| 发表于 2018-4-17 10:43:55 | 显示全部楼层
关于RC3.1.0使用时的详细说明:

1.自定义我的电脑属性:
修改UI_SystemInfo\handle_prop.reg

[HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\properties\command]
@="WinXShell.exe -ui -jcfg UI_SystemInfo\\main.jcfg"
===>
@="cpuz.exe"
你就可以启动CPUZ.exe。

如果你并不在乎WIM的大小,你已经添加wbem相关的15MB文件为了显示这个属性界面,
那么你不需要导入这个注册表信息。


(如果你定义了这个菜单,WinXShell.exe会自动修改成带快捷方式的菜单名 "属性" => "属性(&R)")

2.自定义快捷方式的“打开所在文件/文件夹位置”菜单:
如果你有方法直接处理lnk文件,那么请修改
[HKEY_CLASSES_ROOT\lnkfile\shell\OpenContainingFolderMenu_wxsStub\command] @wxsStub.reg
@="X:\\WinXShell\\WinXShell.exe -ocf \"%1\""
===>
@="pecmd exec !cmd /c  type "%0" | find /i ":\" | find /v "/">"%%temp%%\~~AutoOpenDir.txt" & for /f "delims=" %%a in (%%temp%%\~~AutoOpenDir.txt) do start X:\Progra~1\TotalCommander\TOTALCMD64 /O /T /A "%%~a""

(ljycslg的PE中使用的命令)

或者你可以交给WinXShell来帮你获取快捷方式的目标路径(%1)或所在文件夹(%p),然后修改WinXShell.jcfg调用你的命令:
  "JS_DAEMON":
  {
    "open_containing_folder":"explorer /select,\"%1\""
  }
如果不配置的话,将直接使用WinXShell.exe打开所在目录。

如果你并不在乎WIM的大小,你已经添加了24MB的ieframe.dll文件为了这个功能,
那么你不需要导入wxsStub.reg的注册表信息。


3.自定义任务栏时钟区域的点击事件:
a). 设置拦截点击事件有效
  1.   "JS_DAEMON":
  2.   {
  3.     "handle_clockarea_click":true
  4.   }
复制代码


b) 定义单击处理
c) 定义双击处理
  1.   "JS_DAEMON":
  2.   {
  3.     "clockarea_click": {
  4.       "command": "##{JVAR_MODULEPATH}\\WinXShell.exe",
  5.       "parameters": "-ui -jcfg UI_Calendar\\Calendar.jcfg"
  6.     },
  7.     "clockarea_dbclick": {
  8.       "command": "timedate.cpl"
  9.     }
  10.   }
复制代码


你可以根据自己的喜好修改为任何你喜欢的日历时间程序。

以下是完整的配置例子:
  1.   "JS_DAEMON":
  2.   {
  3.     "open_containing_folder":"explorer /select,"%1"",
  4.     "handle_clockarea_click":true,
  5.     "clockarea_click": {
  6.       "command": "##{JVAR_MODULEPATH}\\WinXShell.exe",
  7.       "parameters": "-ui -jcfg UI_Calendar\\Calendar.jcfg"
  8.     },
  9.     "clockarea_dbclick": {
  10.       "command": "timedate.cpl"
  11.     }
  12.   }
复制代码

点评

新版考虑去APP化更全面了,赞  详情 回复 发表于 2018-4-17 10:50
回复

使用道具 举报

发表于 2018-4-17 10:50:09 | 显示全部楼层
slore 发表于 2018-4-17 10:43
关于RC3.1.0使用时的详细说明:

1.自定义我的电脑属性:

新版考虑去APP化更全面了,赞
回复

使用道具 举报

发表于 2018-4-17 10:53:14 | 显示全部楼层
好东西啊,谢谢楼主分享
回复

使用道具 举报

发表于 2018-4-17 12:18:51 | 显示全部楼层
收藏了。谢谢楼主分享
回复

使用道具 举报

发表于 2018-4-17 12:28:05 来自手机 | 显示全部楼层
楼主,如何更新L大的pe中的winxshell?

点评

1.替换X:\Windows\WinXShell.exe 2.将新增的"JS_DAEMON"的配置添加到X:\Windows\WinXShell.jcfg中。 (不要覆盖,对ljycslg的PE有提供特殊的参数配置) 3.复制UI_XXXX到Windows目录。 需要注意的是: UI_Reso  详情 回复 发表于 2018-4-17 12:44
我也正想请教这个问题啊!  详情 回复 发表于 2018-4-17 12:38
回复

使用道具 举报

发表于 2018-4-17 12:38:23 | 显示全部楼层
my9823 发表于 2018-4-17 12:28
楼主,如何更新L大的pe中的winxshell?

我也正想请教这个问题啊!
回复

使用道具 举报

 楼主| 发表于 2018-4-17 12:44:41 | 显示全部楼层
my9823 发表于 2018-4-17 12:28
楼主,如何更新L大的pe中的winxshell?

1.替换X:\Windows\WinXShell.exe
2.将新增的"JS_DAEMON"的配置添加到X:\Windows\WinXShell.jcfg中。
(不要覆盖,对ljycslg的PE有提供特殊的参数配置)

3.复制UI_XXXX到Windows目录。

需要注意的是:
UI_Resolution  (删除了亮度设置,添加了壁纸设定按钮)
UI_WIFI        (添加了一个打开ljycslg自己的WIFI.wsc按钮,可以导入WIFI密码)
UI_Shutdown    (删除了不可用的休眠,待机按钮)

ljycslg有自己的修改,比如改壁纸是放到分辨率里面的,我的新版是分开的。
自己用BeyondCompare比较下,main.xml进行合并,
或者直接用ljysclg的也可以。
回复

使用道具 举报

发表于 2018-4-17 12:50:19 | 显示全部楼层
坐等小白鼠的说  -  -  
回复

使用道具 举报

发表于 2018-4-17 12:56:26 | 显示全部楼层
可能直接替换和系统的
回复

使用道具 举报

发表于 2018-4-17 12:58:32 | 显示全部楼层
谢谢楼主的分享...
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-28 20:26

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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