找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: slore

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

   火... [复制链接]
发表于 2026-8-16 19:30:41 | 显示全部楼层
本帖最后由 hua_wuxin 于 2026-8-16 19:36 编辑
slore 发表于 2026-8-16 18:24
Device Type: 'DRAM'

内存类型不是 DDR3,DDR4,DDR5,类型处理走到了预期外的逻辑,内存访问 ...

好的,谢谢大佬。

还有个问题:新版本好像不仅Taskbar:SetPinMode('PinEx')无效,连原来好的的Startmenu:Pin()也不行了?
是我误会了“解决高版本无法在固定任务栏程序的问题”,还是下列代码哪里写错了吗?

exec !%ProgramFiles%\WinXShell\WinXShell.exe -luacode Startmenu:Pin([[%SystemRoot%\System32\cmd.exe]])
exec !%ProgramFiles%\WinXShell\WinXShell.exe -luacode Taskbar:SetPinMode('PinEx')
exec !%ProgramFiles%\WinXShell\WinXShell.exe -luacode Taskbar:Pin([[%SystemRoot%\explorer.exe]])

temp-2026-08-16-19-21-37.png

Startmenu:Pin()生成的快捷方式是这样的:
QQ拼音截图未命名.png

PE内核:26200.7171
explorer.exe:26100.9168
ExplorerFrame.dll:26100.8972
shell32.dll:26100.9168

点评

不带参数的程序确实有问题,路径没处理好。 太晚了,没实际测试(固定命令),代码改了,应该修复了UI_Settings显示和Pin命令。 蓝凑下载最新版测试看看。  详情 回复 发表于 2026-8-17 01:20
回复

使用道具 举报

 楼主| 发表于 2026-8-16 19:42:41 | 显示全部楼层
奇怪了,Pin()函数是共用的,我专门判断了类型是Taskbar,才走新逻辑。
测试的时候只测试Taskbar,下次发布前,我把W2也改下用新版本跑一遍。

晚上一并修复掉。
回复

使用道具 举报

发表于 2026-8-16 19:45:48 | 显示全部楼层
牛批,很好用
回复

使用道具 举报

 楼主| 发表于 2026-8-17 01:20:33 | 显示全部楼层
hua_wuxin 发表于 2026-8-16 19:30
好的,谢谢大佬。

还有个问题:新版本好像不仅Taskbar:SetPinMode('PinEx')无效,连原来好的的Startmenu: ...

不带参数的程序确实有问题,路径没处理好。
太晚了,没实际测试(固定命令),代码改了,应该修复了UI_Settings显示和Pin命令。
蓝凑下载最新版测试看看。

点评

5.1.6_beta4 VMware虚拟机的内存插槽显示和Startmenu:Pin()都好了,谢谢S大。 但我测试的26200.7171PE下Taskbar:Pin()还是无效。不知“解决高版本无法在固定任务栏程序的问题”中的高版本是指哪些版本?  详情 回复 发表于 2026-8-17 01:44
回复

使用道具 举报

发表于 2026-8-17 01:44:16 | 显示全部楼层
本帖最后由 hua_wuxin 于 2026-8-17 02:04 编辑
slore 发表于 2026-8-17 01:20
不带参数的程序确实有问题,路径没处理好。
太晚了,没实际测试(固定命令),代码改了,应该修复了UI_Se ...

5.1.6_beta4 VMware虚拟机的内存插槽显示和Startmenu:Pin()都好了,谢谢S大。

02:04更新:好像可以了。为了清理原来写死的任务栏快捷方式注册表信息,我一开始直接删了HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband。改成只删除FavoritesResolve和Favorites数据后好了。不过任务栏上图标出现似乎有点慢,也不是100%成功。
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband]
"FavoritesResolve"=-
"Favorites"=-
"FavoritesChanges"=dword:00000008
"FavoritesVersion"=dword:00000003


01:44
但我测试的26200.7171PE下Taskbar:Pin()还是无效。不知“解决高版本无法在固定任务栏程序的问题”中的高版本是指哪些版本?



点评

新版本的任务栏图标,是创建快捷方式。强制构造Taskband信息追加新的内容, 高版本不能固定图标的,改成explorer.exe启动前执行Pin命令。  详情 回复 发表于 2026-8-17 08:01
回复

使用道具 举报

 楼主| 发表于 2026-8-17 08:01:13 | 显示全部楼层
本帖最后由 slore 于 2026-8-17 08:05 编辑
hua_wuxin 发表于 2026-8-17 01:44
5.1.6_beta4 VMware虚拟机的内存插槽显示和Startmenu:Pin()都好了,谢谢S大。

02:04更新:好像可以了。为 ...

新版本的任务栏图标,是创建快捷方式。强制构造Taskband信息追加新的内容,
高版本不能固定图标的,改成explorer.exe启动前执行Pin命令。

这个Taskband注册表不存在的时候,专门加了自动创建测试过的。

主要有人提供旧版本shell32,explorer使用固定,所以无法区分是否支持系统原生的Pint命令,
所以添加了一个模式切换指令。

W2之后会改成,explorer前后都调用Pint,根据界面选择,插入固定模式,
如果是新模式explorer启动前固定过了,启动后的就跳过。

点评

新版本,function App:onShell() wxsUI('UI_WIFI', 'main.jcfg', '-notrayicon -hidewindow') -- wxsUI('UI_Volume', 'main.jcfg', '-notrayicon -hidewindow') end 似乎失效。  详情 回复 发表于 2026-8-17 08:17
回复

使用道具 举报

发表于 2026-8-17 08:17:11 | 显示全部楼层
slore 发表于 2026-8-17 08:01
新版本的任务栏图标,是创建快捷方式。强制构造Taskband信息追加新的内容,
高版本不能固定图标的,改成ex ...

新版本,function App:onShell()
  wxsUI('UI_WIFI', 'main.jcfg', '-notrayicon -hidewindow')
  -- wxsUI('UI_Volume', 'main.jcfg', '-notrayicon -hidewindow')
end
似乎失效。

点评

单独UI我测试正常的。winxshell.lua中的事件也没变,我弄个PE确认一下。  详情 回复 发表于 2026-8-17 11:46
回复

使用道具 举报

 楼主| 发表于 2026-8-17 11:46:53 | 显示全部楼层
青青草 发表于 2026-8-17 08:17
新版本,function App:onShell()
  wxsUI('UI_WIFI', 'main.jcfg', '-notrayicon -hidewindow')
  -- wxs ...

单独UI我测试正常的。winxshell.lua中的事件也没变,我弄个PE确认一下。
回复

使用道具 举报

发表于 2026-8-17 15:48:18 | 显示全部楼层
红米Book Pro 15笔记本上hwmem_t相关语句导致UI_Settings所有页面右侧空白,屏蔽后基本正常。附上smbios_raw数据,请分析。
smbios_raw_redmibookpro15v2021.zip.svg (2.14 KB, 下载次数: 1)

点评

这个是 UI_Settings 里面出错了。 Type 16的信息有8个内存槽,但是实际Type 17的内存条信息只有2个插内存的, 所以本来要显示具体哪个槽位有信息的列表取 mem[3] 第3个槽时失败了。 page.systeminfo.lua  详情 回复 发表于 2026-8-17 19:19
回复

使用道具 举报

发表于 2026-8-17 17:19:40 | 显示全部楼层
折腾了一下午我终于意识到为什么我测试的26200PE下为什么Taskbar:Pin()有时成功有时失败了。
低级错误:我在PECMD.ini中执行Taskbar:SetPinMode('PinEx')时,没有等它结束就往下跑去执行Taskbar:Pin()了。
另外Taskbar:Pin()放在shel explorer之前确实更好,可以避免后加显示出来慢、甚至需要刷新桌面才能显示出来。

修正如下:
……
exec =!%ProgramFiles%\WinXShell\WinXShell.exe -code Taskbar:SetPinMode('PinEx')
exec !%ProgramFiles%\WinXShell\WinXShell.exe -code "Taskbar:Pin([[%SystemRoot%\explorer.exe]], app:call('resstr', '#{@shell32.dll,30309}'))"
……
shel %SystemRoot%\explorer.exe
……
回复

使用道具 举报

 楼主| 发表于 2026-8-17 19:19:50 | 显示全部楼层
本帖最后由 slore 于 2026-8-17 19:22 编辑
hua_wuxin 发表于 2026-8-17 15:48
红米Book Pro 15笔记本上hwmem_t相关语句导致UI_Settings所有页面右侧空白,屏蔽后基本正常。附上smbios_ra ...

这个是 UI_Settings 里面出错了。

  1. ----------------------------------------
  2. LUA ERROR: ...\Debug\..\..\wxsUI\UI_Settings\parts\page.systeminfo.lua:137: attempt to index a nil value (local 'mem_item')

  3. stack traceback:
  4.         [string "function __G__TRACKBACK__(msg)..."]:4: in metamethod 'index'
  5.         ...\Debug\..\..\wxsUI\UI_Settings\parts\page.systeminfo.lua:137: in method 'Init'
  6. ..."]:4845: in method 'Init'
  7.         D:\Dev\WinXShell\x64\Debug\..\..\wxsUI\UI_Settings\main.lua:20: in upvalue 'init_pages_settings'
  8.         D:\Dev\WinXShell\x64\Debug\..\..\wxsUI\UI_Settings\main.lua:52: in function <D:\Dev\WinXShell\x64\Debug\..\..\wxsUI\UI_Settings\main.lua:37>
复制代码


Type 16的信息有8个内存槽,但是实际Type 17的内存条信息只有2个插内存的,
所以本来要显示具体哪个槽位有信息的列表取 mem[3] 第3个槽时失败了。

page.systeminfo.lua
  1.   local slots_info = ''
  2.   local mem_item = nil
  3.   local n_slots = tonumber(hwmem_t['slots'])
  4.   local max_slot = n_slots
  5.   if max_slot > 8 then max_slot = 8 end
  6.   for i= 1, max_slot do
  7.     mem_item = hwmem_t['mem[' .. i .. ']']
  8. -    if mem_item['speed'] == '0' then
  9. +    if not mem_item or mem_item['speed'] == '0' then  ★ 追加mem[i]信息空判断
  10.       slots_info = slots_info .. str.format("%d: -\n", i)
  11.     else
  12.       slots_info = slots_info .. str.format("%d: %s, %s\n", i, mem_item['size'], mem_item['speed_unit'])
  13.     end
  14.   end
  15.   if max_slot ~= n_slots then slots_info = slots_info .. '......' end
  16.   sui:find('card_memslot_text').tooltip = slots_info
复制代码



hwmem_info.png

UI_Settings.zip (356.28 KB, 下载次数: 3)

点评

原机确认修复有效  详情 回复 发表于 2026-8-17 21:10
回复

使用道具 举报

发表于 2026-8-17 21:10:46 | 显示全部楼层
slore 发表于 2026-8-17 19:19
这个是 UI_Settings 里面出错了。

原机确认修复有效

点评

发现还有没有 Type 16, Type 17 信息的虚拟机。。。 这里直接 tonumber(hwmem['slots']) 还提示nil转换出错了。 主程序修改了下,没有信息也给补个 "slots": "0" 的数据,晚点发beta5吧。  详情 回复 发表于 2026-8-17 21:45
回复

使用道具 举报

 楼主| 发表于 2026-8-17 21:45:12 | 显示全部楼层
本帖最后由 slore 于 2026-8-17 21:49 编辑
hua_wuxin 发表于 2026-8-17 21:10
原机确认修复有效

发现还有没有 Type 16, Type 17 信息的虚拟机。。。
这里直接 tonumber(hwmem_t['slots']) 还提示nil转换出错了。
主程序修改了下,没有信息也给补个 "slots": "0" 的数据,晚点发beta5吧。

点评

给大佬按肩.gif  发表于 2026-8-17 21:54
回复

使用道具 举报

发表于 2026-8-18 15:07:11 | 显示全部楼层
为VMware虚拟机的内存信息提个小建议:
1、生成card_memslot_text.tooltip时,改为判断内存容量,而不是判断内存速度。
2、内存速度为0的话,tooltip和内存信息主框中不显示内存速度(0 MT/s不好看也不对)。
3、tooltip里只显示有容量的槽,空槽略过。(这条只是我的提议,不强求采纳)

点评

这里内存信息是参考任务管理器,显示容量和速度。 空槽显示,是因为4个槽插1,2没双通道,应该插1,3的信息可以直观看出来。 一般机器就2槽,4槽不用省略。 你的环境64内存个槽,64个NV槽,我专门改了最多显示8个槽  详情 回复 发表于 2026-8-18 16:23
回复

使用道具 举报

 楼主| 发表于 2026-8-18 16:23:40 | 显示全部楼层
本帖最后由 slore 于 2026-8-18 16:25 编辑
hua_wuxin 发表于 2026-8-18 15:07
为VMware虚拟机的内存信息提个小建议:
1、生成card_memslot_text.tooltip时,改为判断内存容量,而不是判 ...

这里内存信息是参考任务管理器,显示容量和速度。
空槽显示,是因为4个槽插1,2没双通道,应该插1,3的信息可以直观看出来。
一般机器就2槽,4槽不用省略。
你的环境64内存个槽,64个NV槽,我专门改了最多显示8个槽。

速度为0,只是虚拟机吧?正常情况应该不为0。判断用内存数也行,0速度不显示也可以,正常环境肯定显示。

点评

是的,就是因为VMware虚拟机下看着不够完美提的  详情 回复 发表于 2026-8-18 16:39
回复

使用道具 举报

发表于 2026-8-18 16:39:40 | 显示全部楼层
slore 发表于 2026-8-18 16:23
这里内存信息是参考任务管理器,显示容量和速度。
空槽显示,是因为4个槽插1,2没双通道,应该插1,3的信 ...

是的,就是因为VMware虚拟机下看着不够完美提的
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
谢谢分享
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-27 02:39

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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