|
lwb1 发表于 2019-2-3 11:06 因为使用lua脚本扩展,做了一个 自动加载 lua_helper的lua脚本,结果呢, 它调用dir /b命令获取所有lua文件列表会启动一个cmd来运行的,所以会闪一下。 与文件夹关联没有关系。 打开:WinXShell\lua_helper\lua_helper.lua,删除红色的部分,添加蓝色的部分。 package.cpath = dllpath .. package.cpath |
本帖最后由 slore 于 2019-2-3 13:43 编辑 lwb1 发表于 2019-2-3 10:07 补充系统缺失的文件,可以使用内置的“打开文件对话框”模拟资源管理器,这种方式和explorer.exe几乎一模一样,而且PE系统的很多“浏览”按钮也可以使用了,方便打开文件。 如果是这种方式,你不用修改注册表,桌面打开文件夹,我的电脑,回收站,按Win+E打开资源管理器等都自动会由WinXShell.exe来打开。 运行直接输入: system32这种方式打开文件夹,确实漏了关联注册表,你可以修改HKCR\Folder的关联到WinXShell.exe %1程序。 如果你使用第三方文件管理器,比如explorer++.exe,他们支持多窗口等其他特性,而且是绿色软件,单独一个exe就可以了,不依赖系统组件,比较便携。 这个情况,你修改好WinXShell.jcfg的配置,桌面打开文件夹,我的电脑,回收站,按Win+E打开资源管理器等都自动会由WinXShell去调用第三方文件管理器,你不需要修改注册表。 当然,同样运行直接输入:system32会提示无法找到关联程序,你可以修改注册表关联到WinXShell.exe %1,也可以直接关联到该第3方文件管理器:explorer++.exe %1。 |
lwb1 发表于 2019-2-2 16:24 如果你用第三方文件管理器,如 explorer++.exe。 你放到和WinXShell.exe相同目录, WinXShell.jcfg你打开 "::文件管理器": { "#::第3方文件管理器":"##{JVAR_MODULEPATH}\\explorer++.exe", "#padding-bottom":20 }, "#::第3方文件管理器"开头的 #号删除掉就行了。 你也可以随意放到其他地方,这个路径修改就行了,比如: "::第3方文件管理器":"X:\\Program Files\\explorer++\\explorer++.exe", |
| 参与人数 1 | 无忧币 +1 | 收起 理由 |
|---|---|---|
|
| + 1 | 赞一个! |
Mouri_Naruto 发表于 2018-8-20 00:36 推送到PExplorer这里了, 里面有2个分支PExlorer_v1.0,引入UI库前的最后一个Tag版本, 另外WinXShell改名后对文件管理器也有部分修正,所以把这部分修正单独抽取出来, 推送到WinXShell_shellpart的分支了,可以无依赖VS2015编译成功。 WinXShell的仓库预留着吧。 |
| 参与人数 2 | 无忧币 +6 | 收起 理由 |
|---|---|---|
|
| + 1 | 很给力! |
|
| + 5 | 很给力! |
|
本帖最后由 xintiandi 于 2018-1-29 22:33 编辑 的确是忘了加winpe参数,加上后,重启和关机都有效了。我想取消关机按钮,只保留重启,都是远程操作,一旦关机后,就不方便开机了,不知如何实现。 WinXShell.exe -ui -jcfg UI_Shutdown\main.jcfg 这个直接命令行可用,改到配置里面会出错。 |
| 楼主,还是静态编译,去除掉对VC库依赖吧 |
|
谢谢分享 |
|
不懂就问,老大别笑我。 Classic Shell+ WinXshell 作为外壳制作的PE,想把任务栏上的时间修改为精确到秒,单修改注册表好像不起什么作用了。查找了WinXshell 中的代码,找到了 WinXShell.lua 中有这一段代码,尝试把 '%H:%M'改为 '%H:%M:%S' ,不成功。是不是还要在Pecmd.lua 或 Pecmd.ini 中调用这个代码还是要修改其它地方?
-- 自定义时钟区域的显示信息 -- 自定义显示示例: --[[ | 22:00 星期六 | | 2019-9-14 | -- FYI:https://www.lua.org/pil/22.1.html function TrayClockTextFormatter_zhCN() local wd_name = {'日', '一', '二', '三', '四', '五', '六'} local now_time = os.time() local wd_disname = ' 星期' .. wd_name[os.date('%w', now_time) + 1] local clocktext = os.date('%H:%M' .. TEXT(wd_disname) .. '\r\n%Y-%m-%d', now_time) App:SetVar('ClockText', clocktext) end -- custom tray clock display text -- sample for: --[[ | 22:00 Sat | | 2019-9-14 | -- FYI:https://www.lua.org/pil/22.1.html function TrayClockTextFormatter_enUS() local now_time = os.time() local clocktext = os.date('%H:%M %a\r\n%Y-%m-%d', now_time) App:SetVar('ClockText', clocktext) end
另:桌面右键菜单中的自动排列图标,注册表改了,也不起作用。不知要在哪修改? |
slore 发表于 2025-12-7 20:43 非常感谢 |
本帖最后由 slore 于 2025-12-7 20:48 编辑 yamingw 发表于 2025-12-6 20:12 搞错了,调用SearchPath前,展开环境变量,判断文件是否存在导致的。 把这行删除就好了。 TCHAR *CompletePath(TCHAR *target, TCHAR *out) { TCHAR buff[MAX_PATH] = { 0 }; ExpandEnvironmentStrings(target, out, MAX_PATH); if (PathFileExists(out)) return out; // ★ 这里直接返回cmd.exe或者regedit.exe了。 StrCpy(buff, out); if (SearchPath(NULL, buff, NULL, MAX_PATH, out, NULL)) { return out; } return NULL; } |
本帖最后由 slore 于 2025-12-8 10:45 编辑 yamingw 发表于 2025-12-6 20:32 Startmenu:Pin()本身没有问题。新版本调用命令或者脚本时,不再强制转到WinXShell所在目录,而是保持工作目录导致的。 调用固定命令前,对缺省路径的参数"regedit.exe",使用 SearchPath() 函数获取完整路径, 然后调用文件的上下文菜单进行固定。 如果执行命令的工作路径是, X:\Windows> , 那么获取到的文件路径是相对路径的 regedit.exe, 并没有补充完整的路径,导致固定快捷方式的信息不正确。 旧版本强制在WinXShell.exe文件所在目录,所以ComplatePath返回了完整路径 X:\Windows\regedit.exe, 那么固定的快捷方式就正确了。 对应方法1: 固定时,使用全路径执行命令。 winxshell.exe -cd -code Startmenu:Pin([[%windir%\regedit.exe]]) 对应方法2: 切换到固定文件不在的位置执行命令。 对应方法3: winxshell.exe -code命令执行时,添加 -cd 参数,转到winxshell所在目录。 winxshell.exe -cd -code Startmenu:Pin([[regedit.exe]]) 我修改下代码,SearchPath() 获得的路径如果不是完整路径,那么再用API获取下文件的全路径, 再进行固定。 2025.12.12的 5.1.5.1 版本将修复这个问题。 |
slore 发表于 2025-12-6 20:21 26220.7344测试,版本20.24.8.8正常,20.25.11.11不正常。是开始菜单,任务栏早就不行了,是微软自己有问题,正常系统固定到任务栏也有问题。 |
yamingw 发表于 2025-12-6 20:05 这个是最大化以后关闭,再打开非最大化表示,导致有宽下巴了。我看看上面的修改方法。 |
yamingw 发表于 2025-12-6 20:12 22631 以后就任务栏不能固定了,系统自带的右键菜单也不能用了。 shell32.dll中的关于固定的代码被改位置了,好像是 winrt 的接口了。 我目前再解析Taskband,感觉可以模拟更新一下这个注册表,把里面快捷方式路径,文件名修改后, 相当于自己做一个快捷方式,把二进制更新。 开始菜单的话,代码没改,不知道是不是StartAllBack版本更新导致的? 我再确认一下。 |
|
版本5.15, 语句不正常EXEC "%ProgramFiles%\WinXShell\WinXShell.exe" -code "Startmenu:Pin([[regedit.exe]])" StartAllback显示名字,但无图标打不开 |
zhuxiangchi 发表于 2025-11-27 09:08 是这个意思。 不过作为外壳不是只有启动前,启动后也行,但是不能存在其他外壳,比如wallpaperhost.exe或者explorer.exe, 存在了,它双击就是文件资源管理器,不是外壳了。 回收站本质也是“文件夹”,不过固定是各分区的特殊路径,所以也依赖 文件打开对话框,能显示文件夹,才能打开回收站。 |
| 持续关注 |
| 谢谢分享 |
本帖最后由 zhuxiangchi 于 2025-11-27 20:51 编辑 slore 发表于 2025-11-27 00:10 我大概明白你的意思了,我之前意思不能启动是说进入PE系统中,点击左小角的winXshell作为文件资源管理器,没有反应,跟你上面说的最后倒数第二句话一样的意思,只不过你还解释了没有进入PE之前的WinXShell是作为外壳程序,是这个意思吧?这个可以启动啊,以前我不明白WinXShell的作用,看来有两层,一个是进入PE之前作为外壳,另外一个是你说的,PE系统中的我的电脑和左下角文件资源管理,这个没有文件打开对话框依赖dll的确不行啊,其他都正常,还有就是点击回收站这个也是没有反应的,这个是不是也是WinShell的一个需要文件打开对话框依赖dll的功能了?我的理解没有错吧? |
zhuxiangchi 发表于 2025-11-26 20:50 BOOT.WIM默认启动,有个wallpaperhost.exe显示蓝色背景,然后启动setup.exe安装程序。 这个 wallpaperhost.exe 代表“外壳”,存在外壳程序时,WinXShell_x64.exe 直接双击默认是 文件管理器,所以你补文件,这个打不开,没反应。 你任务栏结束 wallpaperhost.exe主程序,再双击 WinXShell_x64.exe 就会作为外壳启动, 显示桌面和任务栏。 我GIF动画演示的时候,命令行输入的是: WinXShell_x64.exe -shell 。 通过 -shell 参数表明 结束现有“外壳”程序,把 WinXShell 作为外壳启动,所以可以正常运行。 演示动画,我用的最新版本 5.1.5,使用UI_xxxx开头的程序名,将调用 UI_xxxx的UI组件, 等于 WinXShell_x64.exe -jcfg wxsUI\UI_Settings.zip, 这里就是打开一个UI程序, 设置分辨率,查看系统版本等,这个旧版本也一样。 WinXShell => 作为外壳程序:桌面,任务栏,托盘区域 <= 无系统dll额外依赖。 WinXShell => 作为文件管理器:此电脑,文件夹,文件操作 <= 需要文件打开对话框依赖dll。 双击行为:没有外壳程序,作为外壳启动。有外壳程序存在,作为文件管理器打开此电脑。 |
slore 发表于 2025-11-26 14:58 哦,明白了,跟着操作了一次,可能你还是没有明白我的意思,我看了,你那个WinXShell是5.15版本的,新增了一个UI界面,如果不添加dll依赖文件,这个文件资源管理器还是打不开的,你把一个Explorer++.exe文件拖进去,就像你之前说的这个不用添加依赖文件了,就是用这个替代了WinShell的文件资源管理器,这个没有依赖的dll文件怎么点都没有反应了。你只是不过用Explorer++.exe替代了罢了,对吧?其实就像你说要想启动要么添加依赖桌面dll文件到系统文件夹里面要么用第三方没有依赖的Explorer++.exe即可了,我说的对吧?没有那个UI_Settings.exe,那个WinSehll打开文件夹之后点击WinXShell_x64.exe都没有用了。 |
|
更新后制作 25H2 (10.0.26100.7171) 启动正常。请确认制作时,操作步骤是否不同。 WimBuilder2_update_and_SAB_3.9_25h2_build.gif (15MB) https://slore.lanzouo.com/b00z5zy6b 这个演示就没手动复制操作。 |
zhuxiangchi 发表于 2025-11-26 14:38 这个_ISO_目录会用微软的命令打包成ISO文件,你用UlturaISO拖进去一样的。 因为是测试原版boot.wim,没用W2的构建,就是最后的打包iso,还有调用vbox启动iso加载测试。 如果用W2制作PE的话,winxshell,explorer++,都是自动复制的。放到Program Files下面,是生成到boot.wim里面。 |
slore 发表于 2025-11-25 09:38 我有点好奇的是,你XXX\WimBuilder2-Full.v2024-11-11_Beta.1\_ISO_文件夹里面的那个WinXShell是需要自己手动复制过去的吗?还有Explorer++之类的软件,跟你直接使用WimBuilder2一样的吗?但是需要提前放到_ISO文件夹里面去,因为你是手动操作,不是用软件自动操作,需要提前放进去才可以在后面调用WnXShell命令时候可以使用文件资源管理器的界面吗?@slore,希望你能解答一下。感觉你这个命令窗口挺好用的,有空我也可以学习一下,我也是软件工程师,希望可以查看你开源代码完全弄懂了。 |
本帖最后由 slore 于 2025-11-25 13:58 编辑 zhuxiangchi 发表于 2025-11-25 11:12 更新后制作 25H2 (10.0.26100.7171) 启动正常。请确认制作时,操作步骤是否不同。 WimBuilder2_update_and_SAB_3.9_25h2_build.gif (15MB) https://slore.lanzouo.com/b00z5zy6b |
zhuxiangchi 发表于 2025-11-25 11:12 方便你录个屏。准备界面是选 boot.wim[2]么? |
本帖最后由 zhuxiangchi 于 2025-11-25 21:51 编辑 slore 发表于 2025-11-25 09:40 还是不行啊。按照你的来还是进不去啊。25H2需要点关于更新一下是指WimBuilder-.v2024-11-11.cmd更新一下这个软件吗?GitHub上下载不了,我设置Gitee下载完更新完专家模式还是不行啊。也手动替换了为StartAllBack_3.9.18_setup.exe版本了,进不到界面蓝屏了,什么回事了? |
| 谢谢楼主的分享 |
本帖最后由 slore 于 2025-11-25 09:41 编辑 zhuxiangchi 发表于 2025-11-25 09:18 用wimbuilder2制作PE可以用原生的explorer也可以用winxshell,25H2需要点关于更新一下,然后,手动替换vendor/StartAllBack到3.9.16版本以上。制作的时候选boot.wim[2]来制作,winre.wim会有文件版本不同步的问题。 |
zhuxiangchi 发表于 2025-11-25 09:18 和wimbuilder2无关。我只是用它来直接把boot.wim打包iso,里面的boot.wim就是直接25h2自带的。 |
本帖最后由 zhuxiangchi 于 2025-11-25 09:19 编辑 slore 发表于 2025-11-24 23:07 你的WimBuilder2是哪一个版本?我使用WimBuilder-.v2024-11-11.cmd这个制作的ISO,Win11 25H2不能直接在VMware里面运行起来,而且WimBuilder2怎么更新还是这个版本到底哪里错了啊?另外,我之前是没有用工具直接手动加载到WinPE里面的,没有加入dll,所以不行。我参考这篇文章:onmyodev.com/2025/07/windows-pe-2/,直接复制WinXshell文件进去,修改注册表像你说的文件资源管理器怎么点击都不起效果,但是作者说他的可以。 |
zhuxiangchi 发表于 2025-11-24 21:00 用 25H2的 boot.wim 测试了下,没问题啊。 winxshell_25h2_boot.wim.gif (10MB,有些大,放到下面的网盘了,你下载确认下。) https://slore.lanzouo.com/iDmcd3c29iaf |
本帖最后由 zhuxiangchi 于 2025-11-24 21:01 编辑 slore 发表于 2025-11-24 19:53 是Boot.wim不能,Win10 20H2之后发布的系统包括Win11都不能启动的。最低的Win10 20H2版本是19042.685,是教育版。您可以是否有其他版本可以兼容,我最低这个版本之后就运行不起来了,不添加dll文件直接放进去的话。 |
zhuxiangchi 发表于 2025-11-23 15:27 你现在不能启动的,具体的 Windows版本号是多少?是 Boot.wim不能,还是 Winre.wim 不能启动? |
zhuxiangchi 发表于 2025-11-23 15:27 不依赖文件,直接 WinXShell.exe -shell 启动,可以启动桌面 + 任务栏。 文件资源管理器,需要补充系统的额外dll和注册表。如果使用 explorer++, Q-Dir等 第三方文件资源管理器,就不用补,直接用。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.