无忧启动论坛

标题: 基于wimtool实现的WIM文件双击自动挂载执行功能在64位系统中存在严重问题 [打印本页]

作者: hhh333    时间: 2017-4-16 00:12
标题: 基于wimtool实现的WIM文件双击自动挂载执行功能在64位系统中存在严重问题
如题,近期在调试这个功能时发现有严重的问题
1、wimtool检测驱动的功能不完善
系统究竟使用wimfltr.sys或wimmount.sys,决定于系统中使用的%windir%\system32\wimgapi.dll文件,但wimtool检测的是%windir%\sysWOW64\wimgapi.dll。如果这两个版本不一致,显然就会出现异常。GImagex没有这个问题。

2、挂载自动执行机制有几个严重问题:
①执行批处理环境中更改了环境变量%PROCESSOR_ARCHITECTURE%,使其值为x86,本来应该为AMD64,而多出了一个%PROCESSOR_ARCHITEW6432%变量,它的徝是AMD64。如果用%PROCESSOR_ARCHITECTURE%来判断是不是64位环境会出错;
②对注册表的操作如REG ADD、rundll32 XXX.inf等全部转到HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node;

可见wimtool尽管提供了WimShExt-X64.DLL但似乎还是在使用32位程序,在64位中注册扩展右键菜单等功能也无效。

老九提供实现这个双击挂载并自动执行指定程序的功能设想是很不错的,但一直没更新,64位中确有严重BUG。
作者: 红毛樱木    时间: 2017-4-16 00:44
批处理贴上来看看。或许直接换成PECMD的代码可行。
作者: 1400700226    时间: 2017-4-16 02:52
老程序了,这样也是正常的。。。这么好的程序,停更又不开源。。。真可惜。
作者: hhh333    时间: 2017-4-16 08:48
红毛樱木 发表于 2017-4-16 00:44
批处理贴上来看看。或许直接换成PECMD的代码可行。

自动就是32位环境,试过多种方式都不行
作者: hhh333    时间: 2017-4-16 09:11
本帖最后由 hhh333 于 2017-4-16 09:45 编辑
红毛樱木 发表于 2017-4-16 00:44
批处理贴上来看看。或许直接换成PECMD的代码可行。


你可以看我新发布的谷歌输入法,里面有批处理,64位中只能挂载不能自动安装,只能手动。
各位都想下办法,让64位中能自动安装,我唯一能想到的办法就是自动生成一个REG文件再导入,看行不行。(经试验也不行,对注册表的操作强制重定向到32位的位置)
作者: 2012qnmd    时间: 2017-4-16 09:31
其实吧,都WIN10了,是不是换换思路.只做WIN10,只做全内置,只做多功能,然后就没有这些问题了.

老机器,用以前的版本,够用吧!
新机器,用新版.
作者: wimboot    时间: 2017-4-16 09:31
wimtool在64环境中确实使用了32位组件
作者: hhh333    时间: 2017-4-16 09:46
2012qnmd 发表于 2017-4-16 09:31
其实吧,都WIN10了,是不是换换思路.只做WIN10,只做全内置,只做多功能,然后就没有这些问题了.

老机器,用以 ...


这里说自动挂载执行的功能
作者: wimboot    时间: 2017-4-16 09:55
10PE挂载X盘失效 不然dism命令就能快速完成挂载
作者: hhh333    时间: 2017-4-16 10:09
frg521 发表于 2017-4-16 10:06
请回谷歌拼音,百度2网站 打不开,试着分享文件夹,如果反复失败

分享文件夹也不行,不知是暂时的还是永久的
作者: hhh333    时间: 2017-4-16 10:29
frg521 发表于 2017-4-16 10:06
请回谷歌拼音,百度2网站 打不开,试着分享文件夹,如果反复失败

已提供分卷文件
作者: 红毛樱木    时间: 2017-4-16 12:08
hhh333 发表于 2017-4-16 09:11
你可以看我新发布的谷歌输入法,里面有批处理,64位中只能挂载不能自动安装,只能手动。
各位都想下办 ...

我意思是双击挂载执行,这个是批处理实现wimtool关键的吗?
作者: hhh333    时间: 2017-4-16 12:21
frg521 发表于 2017-4-16 11:54
我在X64-WIN7挂载也显示有谷歌了,只是输入的英文.
应该是怎样的?是不是安装不完整,或没完成 ?太绿化了?

请重新下载
作者: hhh333    时间: 2017-4-16 12:28
红毛樱木 发表于 2017-4-16 12:08
我意思是双击挂载执行,这个是批处理实现wimtool关键的吗?

我的意思是所有的注册表操作都会重新定向到32位的位置:
reg add "HKLM\SOFTWARE\Google\Google Pinyin 2" /f /v "BrandCode" /t REG_SZ /d "GGPY"
最后果在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Google\Google Pinyin 2
作者: 红毛樱木    时间: 2017-4-16 13:14
本帖最后由 红毛樱木 于 2017-4-16 13:42 编辑
hhh333 发表于 2017-4-16 12:28
我的意思是所有的注册表操作都会重新定向到32位的位置:
reg add "HKLM\SOFTWARE\Google\Google Pinyin  ...


什么程序调用的这个Reg?批处理调用的这个Reg?又是什么调用的这个批处理?
整个流程说下。
好像明白了,这些调用都是wimtool执行的?
作者: 2012duanyongli    时间: 2017-4-16 13:50
wimtool是32位的挂在后的执行肯定是执行syswow64\的cmd.exe了
作者: slore    时间: 2017-4-16 14:00
批处理首行,主动调用64位的cmd.exe执行自身应该可以解决。
作者: andos    时间: 2017-5-11 22:27
WIMTOOL一直對X64系統 和新系統支持都不好,甚至不能用

太老了沒更新....可惜
作者: xmzhqw    时间: 2017-6-17 13:21
今天使用WINTOOL也出现问题,看来真的要放弃了
作者: huaqingyuan    时间: 2017-6-20 15:52
我的DWIM也可以自动执行的,你可以试试,而且挂载没有限制,Imagex,DISM可以挂,那就可以挂。
作者: Anson4    时间: 2017-8-26 16:10
wimboot 发表于 2017-4-16 09:31
wimtool在64环境中确实使用了32位组件

请问有什么办法使Wimtool在系统中的右键菜单可用吗?
作者: lifei    时间: 2019-10-19 09:46

收益良多




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3