无忧启动论坛

标题: 一个脚本让纯64位变成全兼容32位的Win8pe [打印本页]

作者: hhh333    时间: 2013-5-30 18:50
标题: 一个脚本让纯64位变成全兼容32位的Win8pe
本帖最后由 hhh333 于 2013-5-30 19:15 编辑

这确实是一个创新,兼容性可大幅提升,为了吸引眼球,使用了以上标题!

经过测试可以让原来不能用的32位程序基本可以运行,如我上次发布的兼容版QQ不能用/Opera无声音,全部解决了,但没有增加任何体积!酷!爽!

原理:

  大家可以看到install.wim中的syswow64有1G多,因此要达到全兼容可能要把整个目录搬过来,显然不可能,64位全功能的system32才不过400M。这个目录是32位的system32中的程序,能不能利用合盘中现有的32位全功能版?将32位system32和install的syswow64内共同含有而64位PE的syswow64中缺失的文件集中起来,作为第二个卷追加到32位的内核中,在64位启动时,将32位中追加的添加进来,那么64位中将包括32位全功能版内核中的多数文件。如果32位全功能版采用三卡外置的方式,再将这些外置的支持文件(即启用时要添加了system32中的)也加进来,那么这个64位就变成了一个高度兼容32位的系统,而从头到尾基本不需要体积,只增加几行代码和32位内核追加,而追加的与原来的是完全相同的,就我的那个内核而言,追加了70M的卷大概只加了100kb。

pecmd.ini中增加了一句:IFEX %W%\sysWOW64\,FORX \BOOT\H3_8PE.WIM,MyIni,1,EXEC !CMD.EXE /C "imagex.exe /apply %MyIni% 2 %W%\syswow64"就实现了加载。
网卡驱动中增加了:
EXEC =!CMD.EXE /C "7z.exe e %CurDir%\..\..\DR8\Ethernet\NET_PART%BootOS%.7z -y -aos -o"%windir%\Syswow64" system32\* -r-"
EXEC =!CMD.EXE /C "7z.exe e %CurDir%\..\..\DR8\Ethernet\NET_PART%BootOS%.7z -y -aos -o"%windir%\Syswow64\zh-CN" system32\zh-CN\* -r-"

声卡驱动中增加了:
EXEC =!CMD.EXE /C "7z.exe e %CurDir%\..\..\DR8\Sound\SOUND_PART.7z -y -aos -o"%windir%\Syswow64" system32\* -r-"
EXEC =!CMD.EXE /C "7z.exe e %CurDir%\..\..\DR8\Sound\SOUND_PART.7z -y -aos -o"%windir%\Syswow64\zh-CN" system32\zh-CN\* -r-"

……

可见方法是一样的。当然PE的结构不同,代码可以变动。反正我用这个方法让很多原来用不起的32位程序用起来了。回到标题,将以上代码做成一个文件也可以,放到桌面上,运行一下不就完成了纯64到兼容32的改变?

听阿弥陀佛老大说不想搞全兼容的,主要搞基本兼容,这个最好了,搞一个最精简的syswow64,再从全功能32位中取文件,这个就达到了纯64位与兼容32位的统一,哈哈P大的“统一”的理论比马列主义还管用!
(本来想将64位syswow64中所有文件都去掉,完全从32位中取,没有成功,有的文件原来就要在那里才可以)


作者: myBOOT    时间: 2013-5-30 18:57
好,支持新创。
作者: sry    时间: 2013-5-30 19:01
这种思路好
作者: dfw9    时间: 2013-5-30 19:01
也为微软的向下兼容开了思路。
作者: 糊涂    时间: 2013-5-30 19:07
64兼容32的又一次革命!伟大
作者: 2011LLYC    时间: 2013-5-30 19:12
继续创新

作者: hhh333    时间: 2013-5-30 19:17
现在主要希望阿弥陀佛老大能尽快出一个精简兼容的64位系统!看帖好象正在做。
作者: sp_star    时间: 2013-5-30 19:24
楼主这个方法需要一个32位的PE吧?只适用于合盘,不适用于单版本?
如果是这样,也不用第2个卷这么麻烦。挂载上,该拷贝什么就拷贝什么不就行了。
作者: 2012bzsb    时间: 2013-5-30 19:42
100多M,基本可以很好的兼容32, 不差这点体积吧!

这样还不如直接带一个原版64的镜像好了
作者: hhh333    时间: 2013-5-30 20:39
sp_star 发表于 2013-5-30 19:24
楼主这个方法需要一个32位的PE吧?只适用于合盘,不适用于单版本?
如果是这样,也不用第2个卷这么麻烦。挂 ...

1、当然是合盘,32位目前还是不可替代的。
2、原先我也是想先挂后拷,但关键是拷什么,不可能全拷过去的,还是做成卷方便。
作者: sp_star    时间: 2013-5-30 20:42
标题: RE: 一个脚本让纯64位变成全兼容32位的Win8pe
hhh333 发表于 2013-5-30 20:39
1、当然是合盘,32位目前还是不可替代的。
2、原先我也是想先挂后拷,但关键是拷什么,不可能全拷过去的 ...

用批处理决定考什么,更方便。
作者: hhh333    时间: 2013-5-30 20:52
sp_star 发表于 2013-5-30 20:42
用批处理决定考什么,更方便。

得先弄一个文件列表,也是一个好办法,更具有通用性,老大有不有兴趣做一个syswow64的列表,或者干脆将install.wim中的列表出来?
不过我用imagex效率很高,感觉不到延时就好了。
作者: sp_star    时间: 2013-5-30 21:04
hhh333 发表于 2013-5-30 20:52
得先弄一个文件列表,也是一个好办法,更具有通用性,老大有不有兴趣做一个syswow64的列表,或者干脆将in ...

imagex是挂载效率高吧?拷贝总有延时的。
syswow64列表我也做不出,需要收集很多常用程序需要的文件才行。要不就搞一个很大的,照着system32下64位的文件列表拷贝。
顺便请教一下,我用imagex只能接压缩,挂载就会在最后说权限不足,知道怎么解决吗?imagx好像用的是wimmount.sys这个驱动。
作者: sp_star    时间: 2013-5-30 21:06
hhh333 发表于 2013-5-30 20:52
得先弄一个文件列表,也是一个好办法,更具有通用性,老大有不有兴趣做一个syswow64的列表,或者干脆将in ...

再说用2个卷的方法不是也要有个文件列表吗?
作者: zds1210    时间: 2013-5-30 21:08
不错啊。好东西,值得学习一下,最后,32位PE不用要了,这个爽。
作者: zds1210    时间: 2013-5-30 21:09
嗯。P大应该统一win8 PE.
作者: hhh333    时间: 2013-5-30 21:12
sp_star 发表于 2013-5-30 21:04
imagex是挂载效率高吧?拷贝总有延时的。
syswow64列表我也做不出,需要收集很多常用程序需要的文件才行 ...

系统装什么,它就用什么。以前我用1800那个版本的imagex,压缩文件效率很低,现在用win7带的那个,同样的文件,我测试过,前者6分钟,后者1分钟搞定,也即快了5倍。

应该可以挂的。
作者: 月光海洋    时间: 2013-5-30 21:39
支持新技术…继续创新
作者: hhh333    时间: 2013-5-30 21:50
刚才又试了下网启,经过以上方法改造后,网启也成功了。
作者: dfw9    时间: 2013-5-30 21:56
hhh333 发表于 2013-5-30 21:50
刚才又试了下网启,经过以上方法改造后,网启也成功了。

道个喜,一步步的离成功越来越近了。
作者: chiannet    时间: 2013-5-30 21:57
HHH333老大,支持UEFI 64 PXE 方式启动搞定否?这个倒要捣鼓捣鼓.
作者: hhh333    时间: 2013-5-30 22:04
chiannet 发表于 2013-5-30 21:57
HHH333老大,支持UEFI 64 PXE 方式启动搞定否?这个倒要捣鼓捣鼓.

UEFI 64 PXE 是个啥子意思?不大懂。
作者: chiannet    时间: 2013-5-30 22:11
hhh333 发表于 2013-5-30 22:04
UEFI 64 PXE 是个啥子意思?不大懂。





我从VM9.0看到PXE EFI启动选项.但手头没这方面的更多料.
作者: jdcgzb    时间: 2013-5-30 22:33
支持楼主的创举,在PE下维护计算机时x86和x64软件肯定会混合运行,这是当前常见维护软件决定的。
作者: zlgs    时间: 2013-5-31 08:59
呵呵~~
乐见其成
等成品

作者: Cracada    时间: 2013-5-31 09:01
**,学习了
作者: shan    时间: 2013-5-31 10:19
H大辛苦了,真是折腾无止境啊
作者: hhh333    时间: 2013-5-31 18:51
把它改成了挂载拷入的方式,通用性更强,也不用对32位进行追加打包。
这是列表和主程序,做在一起:
  1. ;@echo off
  2. ;set s32=%1\Windows\system32
  3. ;set t64=%Windir%\syswow64
  4. ;if not exist %s32% exit
  5. ;for /f "eol=;" %%i in (%0) do if exist %s32%\%%i if not exist %t64%\%%i copy "%s32%\%%i" "%t64%\%%i" >nul
  6. ;goto :EOF
  7. ;
  8. ;syswow4
  9. 12520437.cpx
  10. 12520850.cpx
  11. aaclient.dll
  12. accessibilitycpl.dll
  13. ACCTRES.dll
  14. acledit.dll
  15. aclui.dll
  16. acppage.dll
  17. ActionCenter.dll
  18. .........
  19. ;syswow64\zh-CN
  20. zh-CN\aaclient.dll.mui
  21. zh-CN\accessibilitycpl.dll.mui
  22. zh-CN\acctres.dll.mui
  23. zh-CN\acledit.dll.mui
  24. zh-CN\aclui.dll.mui
  25. zh-CN\acppage.dll.mui
  26. zh-CN\ActionCenter.dll.mui
  27. zh-CN\ActionCenterCPL.dll.mui
  28. zh-CN\activeds.dll.mui
  29. zh-CN\AdmTmpl.dll.mui
  30. zh-CN\adprovider.dll.mui
  31. zh-CN\adrclient.dll.mui
  32. .......
复制代码
用“ADDWOW.CMD Y:\H3_8PE”来调用,其中Y:\H3_8PE为Win8pe 32位内核挂载的位置,可以在装载外置时调用:
  1. _SUB NT64_ADDWOW        `装载32位内核中的文件到WOW64
  2.         TEAM TEXT 查找32位H3 Win8内核以增加兼容性....... #0xEE00 $$20|WAIT 100
  3.         TEAM PATH %MountDrv%\H3_8PE|MOUN \BOOT\H3_8PE.WIM,%MountDrv%\H3_8PE,1|WAIT 500
  4.         IFEX %MountDrv%\H3_8PE\Windows\explorer.exe,!EXIT _SUB
  5.         EXEC !=CMD.EXE /C "%Windir%\System32\ADDWOW.CMD %MountDrv%\H3_8PE"
  6.         MOUN ,%MountDrv%\H3_8PE,0
  7. _END
  8. `64位利用32位内核增加兼容性
  9. IFEX %MountDrv%\H3_8PE,!IFEX %WinDir%\SysWOW64\,CALL NT64_ADDWOW
复制代码
这是适用于我那个合盘的两个文件,一个放h3pe下,一个放系统中system32下: H3PE.zip (24.99 KB, 下载次数: 24)
作者: peterpanheaven    时间: 2013-5-31 21:03
hhh333 发表于 2013-5-31 18:51
把它改成了挂载拷入的方式,通用性更强,也不用对32位进行追加打包。
这是列表和主程序,做在一起:用“AD ...

笨拙的我..雖然copy了這兩檔案進該目錄修正...
但...如圖...
我想我能等H3大的ISO整理完成版^^

snap0760.png (384.44 KB, 下载次数: 55)

snap0760.png

作者: hhh333    时间: 2013-5-31 21:11
本帖最后由 hhh333 于 2013-5-31 21:17 编辑
peterpanheaven 发表于 2013-5-31 21:03
笨拙的我..雖然copy了這兩檔案進該目錄修正...
但...如圖...
我想我能等H3大的ISO整理完成版^^


哈哈,还要改些文件。想搞一个增量包,但也接近1G了,算了直接上传吧。又解决了penetwork不能运行的问题。干脆再等一下吧,7z和BC3目前没有右键。很不方便。
作者: sp_star    时间: 2013-5-31 21:38
hhh333 发表于 2013-5-31 18:51
把它改成了挂载拷入的方式,通用性更强,也不用对32位进行追加打包。
这是列表和主程序,做在一起:用“AD ...

其实我觉得wow64最关键的还是文件列表啊。准备一个体积受控制,又兼容性好的文件列表不容易。
作者: hhh333    时间: 2013-5-31 21:57
sp_star 发表于 2013-5-31 21:38
其实我觉得wow64最关键的还是文件列表啊。准备一个体积受控制,又兼容性好的文件列表不容易。

我是直接用安装盘syswow64来做的,这个应该是最全的了吧,以这个列表为准满足32位有、64位无的就直接放系统中。
作者: 66369    时间: 2013-5-31 22:09
王牌PE的制作人.令人敬佩.
作者: hhh333    时间: 2013-5-31 22:13
66369 发表于 2013-5-31 22:09
王牌PE的制作人.令人敬佩.

水大有空?!近期折腾这个64位,有点意思。希望能够点拨一下,或来加一把火?
作者: sp_star    时间: 2013-5-31 22:13
hhh333 发表于 2013-5-31 21:57
我是直接用安装盘syswow64来做的,这个应该是最全的了吧,以这个列表为准满足32位有、64位无的就直接放系 ...

是很全了,尽了最大可能来补全。
作者: yesfei    时间: 2013-6-1 07:36
将代码做成一个文件,放到桌面上,运行一下就完成了纯64到兼容32-------这太强大!!!!
作者: dfw9    时间: 2013-6-1 07:56
鉴于x64的软件少,那么x64的OS尽可能的兼容x86程序,而忽略(减少)x64的系统文件,是不是可以控制到wim的体积最小化呢?
作者: yaojy    时间: 2013-6-1 08:43
我觉得这里说的“纯64位”应该是兼容64位的PE精简了32位支持文件得到的,并非真正意义的“纯”64位
作者: PE168    时间: 2013-6-1 09:31
好!pe区需要这样的人才
作者: 兵河之心    时间: 2013-6-1 09:31
佩服啊!
坐等更新作品!!!
作者: hhh333    时间: 2013-6-1 09:42
yaojy 发表于 2013-6-1 08:43
我觉得这里说的“纯64位”应该是兼容64位的PE精简了32位支持文件得到的,并非真正意义的“纯”64位

是的,不是绝对的“纯”64位,但确实可以做到最精简的32位支持,我想精简了兼容文件的比绝对纯的64位更有市场,加上这个工具既可以减少体积又可以大幅提高兼容性,应该是一举两得的。

听说阿弥陀佛老大正在做一个精简兼容的64位,很期待啊!
作者: yaojy    时间: 2013-6-1 10:08
本帖最后由 yaojy 于 2013-6-1 10:16 编辑
hhh333 发表于 2013-6-1 09:42
是的,不是绝对的“纯”64位,但确实可以做到最精简的32位支持,我想精简了兼容文件的比绝对纯的64位更有 ...


呵呵,标题有误导成分,大家都是被迫做标题党。
其实我最想知道,兼容32位最基本的注册表和支持文件是些什么。
这样就可以得到较小的兼容32位的核心了,大大减少体积。
作者: guiling    时间: 2013-6-1 10:50
hhh333 发表于 2013-5-31 18:51
把它改成了挂载拷入的方式,通用性更强,也不用对32位进行追加打包。
这是列表和主程序,做在一起:用“AD ...

试了一下这两个文件,播放器和qq是可以用了,但再G41主板上显示驱动装不上,无法播放,显示不是支持的电影文件,是不是自带驱动有些少,office还是没法使用,浏览器还是没声。
作者: 2012doberman    时间: 2013-6-1 12:49
yaojy 发表于 2013-6-1 10:08
呵呵,标题有误导成分,大家都是被迫做标题党。
其实我最想知道,兼容32位最基本的注册表和支持文件是 ...

This is the right direction!
作者: hhh333    时间: 2013-6-1 20:37
本帖最后由 hhh333 于 2013-6-1 21:18 编辑
guiling 发表于 2013-6-1 10:50
试了一下这两个文件,播放器和qq是可以用了,但再G41主板上显示驱动装不上,无法播放,显示不是支持的电影 ...


新的版本解决了以下这些问题:
①解决QQ、IcoFX等不能运行的问题;
②解决BC3、UE、7z没有右键菜单的问题;
③解决64位不能做网启服务器的问题;
④解决Opera无声的问题;
⑤解决ACD、potplay等关联文件双击不能运行的问题;
⑥解决office2003不能运行的问题;
⑦新增potplay64位播放器;
⑧新增32位兼容增强工具;

也得益于这个脚本吧!

用以下脚本可以解决播放无声问题:
  1. _SUB CommUnzip
  2. TIPS 正在释放,三卡驱动公共支持文件……,10000,4,SHELL32.DLL#1
  3. EXEC =!CMD.EXE /C "7z.exe x ..\DRVCOMM.7z -y -aos -o"%windir%\System32""
  4. EXEC =!CMD.EXE /C "7z.exe x %CurDir%\..\..\DRVCOMM.7z -y -aos -o"%windir%\Syswow64""
  5. _END

  6. _SUB SndUnzip
  7. TIPS 正在释放,声卡支持文件……,30000,4,SHELL32.DLL#1
  8. EXEC =!CMD.EXE /C "7z.exe x SOUND_PART.7z -y -aos -o"%windir%""
  9. EXEC =!CMD.EXE /C "7z.exe e %CurDir%\..\..\DR8\Sound\SOUND_PART.7z -y -aos -o"%windir%\Syswow64" system32\* -r-"
  10. EXEC =!CMD.EXE /C "7z.exe e %CurDir%\..\..\DR8\Sound\SOUND_PART.7z -y -aos -o"%windir%\Syswow64\zh-CN" system32\zh-CN\* -r-"
  11. _END

  12. /////----主程序区----////
  13. IFEX %WinDir%\System32\quartz.dll,!CALL CommUnzip
  14. IFEX %WinDir%\System32\mmres.dll,!CALL SndUnzip
  15. EXEC !CMD.EXE /C "ECHO.>%WinDir%\LD_SND.OK"

  16. TIPS 正在安装,声卡驱动……,10000,4,SHELL32.DLL#1
  17. SERV audiosrv
  18. DEVI %Windir%\inf\hdaudio.inf
  19. IFEX %CurDir%\DRIVERS_SOUND.CAB,DEVI $$$$DRIVERS_SOUND.CAB,,%Temp%
  20. FIND Explorer.EXE,KILL EXPLORER.EXE
复制代码
存成START_SOUND.INI代替原文件即可。

在原来的insoffice.cmd后面增加如下注册表,可解决office2003在64位中运行的问题:
  1. rem 64bit Add
  2. reg add "HKLM\SOFTWARE\Classes\Wow6432Node\CLSID\{00020906-0000-0000-C000-000000000046}\LocalServer32" /f /ve /d "%OFFICE%WinWord.exe" >nul
  3. reg add "HKLM\SOFTWARE\Wow6432Node\Classes\CLSID\{00020906-0000-0000-C000-000000000046}\LocalServer32" /f /ve /d "%OFFICE%WinWord.exe" >nul

  4. reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\11.0\Common\InstallRoot" /f /v "InstallCount" /t REG_DWORD /d 0x00000001 >nul
  5. reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\11.0\Common\InstallRoot" /f /v "Path" /d "%OFFICE%" >nul
  6. reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\11.0\Common\FilesPaths" /f /v "mso.dll" /d "%OFFICE%MSO.DLL" >nul
  7. reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\11.0\Registration\{90110804-6000-11D3-8CFE-0150048383C9}" /f /v "DigitalProductID" /t REG_BINARY /d "a40000000300000037333934312d3634302d303030303130362d353739393500720000003132332d31323334350000000000000000354e1105b8180a8a53ae4c0c2e010000000000bb5d714541460d0000000000000000000000000000000000000000000000000032343830300000000000000000000000ec11164400020000fa17000000000000000000000000000000000000000000000000000000000000de8f3a91" >nul
  8. reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe" /f /v "Path" /d "%OFFICE%" >nul
  9. reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe" /f /v "useURL" /d "1" >nul
  10. reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe" /f /ve /d "%OFFICE%WinWord.exe" >nul

  11. reg add "HKCU\Software\Wow6432Node\Microsoft\Office\11.0\Common\Licensing" /f /v "1EBDE4BC9A514630B5412561FA45CCC5" /t REG_BINARY /d "01000000270000007b39303131303830342d363030302d313144332d384346452d3031353030343833383343397d00560000004d006900630072006f0073006f006600740020004f00660066006900630065002000500072006f00660065007300730069006f006e0061006c002000450064006900740069006f006e00200032003000300033000000" >nul
  12. reg add "HKCU\Software\Wow6432Node\Microsoft\Office\11.0\Common\Licensing" /f /v "A2B280D420FB472099F740C09FBCE10A" /t REG_BINARY /d "01000000270000007b39303131303830342d363030302d313144332d384346452d3031353030343833383343397d00560000004d006900630072006f0073006f006600740020004f00660066006900630065002000500072006f00660065007300730069006f006e0061006c002000450064006900740069006f006e00200032003000300033000000" >nul
  13. reg add "HKCU\Software\Wow6432Node\Microsoft\Office\11.0\Common\Licensing" /f /v "C86C0B9263C04E358605281275C21F97" /t REG_BINARY /d "01000000270000007b39303131303830342d363030302d313144332d384346452d3031353030343833383343397d00560000004d006900630072006f0073006f006600740020004f00660066006900630065002000500072006f00660065007300730069006f006e0061006c002000450064006900740069006f006e00200032003000300033000000" >nul
复制代码

作者: 2011LLYC    时间: 2013-6-1 20:43
支持原创
作者: dalin_01    时间: 2013-6-1 21:16
看到新希望了。等待新版本试用。
作者: 2011678    时间: 2013-6-1 23:27
楼主,你太伟大了,佩服的5T投地啊
作者: 612731    时间: 2013-6-1 23:34
支持原创。。顶起来 。。
作者: 2010qaz_000    时间: 2013-6-2 11:18
支持老大  ...希望早日出成品
作者: fishsea    时间: 2013-6-2 11:33
juedui支持h3老师。
作者: guiling    时间: 2013-6-2 12:15
hhh333 发表于 2013-6-1 20:37
新的版本解决了以下这些问题:
①解决QQ、IcoFX等不能运行的问题;
②解决BC3、UE、7z没有右键菜单的 ...

下载修改后试用OK,就是桌面的potplay还是32位的,要进开始找potplay64才可用,其它OK,不过G41的显示驱动还是不行,只有1280*1024的分辨。应该是对集显的主板差一点,独显的不错,嘿嘿。谢谢H3大大。
作者: guiling    时间: 2013-6-2 12:58
本帖最后由 guiling 于 2013-6-2 14:04 编辑
hhh333 发表于 2013-6-1 20:37
新的版本解决了以下这些问题:
①解决QQ、IcoFX等不能运行的问题;
②解决BC3、UE、7z没有右键菜单的 ...


如能弄一个PENETCFG来共享就更完美了。下了6月1号的包,H3大大已经解决,谢谢啦!!!!!!经典




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