PE的話,我是用這一條,讓32(64)位元的程式如果找不到會自動去64(32)位元找,因為64PE通常32位元的System不會放太多.exe
|
本帖最后由 hua_wuxin 于 2020-8-6 16:19 编辑 疯狂の石头 发表于 2020-8-6 15:54 if exist那行此时条件不成立,后面的……\reg.exe delete不执行 然后你原来的reg delete这时就是调用的64位reg.exe了,会删除你原本想删的地方,但WOW6432Node下的OEMInformation就没管了。 |
hua_wuxin 发表于 2020-8-6 14:48 还有个疑问。如果我选上了64位的RAR自解压呢 |
hua_wuxin 发表于 2020-8-6 14:48 也就是说,调用64位的REG.EXE 才不会被强制得定向到WOW3264NODE是吧 |
你的批处理多加一行,调用下64位reg.exe做删除就可以了。自解压继续保持为32位可以在32位和64位系统下通用。 if exist %SystemRoot%\Sysnative\reg.exe %SystemRoot%\Sysnative\reg.exe delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation" /f 注意上面是一行(被论坛排版强制换行了),delete后有空格。你原本的reg delete语句删除的是WOW6432Node下的OEMInformation,也是必要的,要保留。 |
hua_wuxin 发表于 2020-8-6 13:26 受教了。感谢!!下午再测一下! |
liu_zhenfeng 发表于 2020-8-6 13:07 我在制作32位程序的时候遇到过,不过我用了个淫招,貌似可以绕过这个机制, mklink %temp%\cmd.exe C:\windows\system32\cmd.exe 然后用%temp%\cmd.exe 调用 |
参与人数 1 | 无忧币 +1 | 收起 理由 |
---|---|---|
| + 1 |
疯狂の石头 发表于 2020-8-6 12:40 64位系统下,32位程序对注册表HKLM\SOFTWARE\xxx的操作,会被系统强制重定向到HKLM\SOFTWARE\WOW6432Node\xxx。 你的自解压是32位的。 ![]() |
http://bbs.wuyou.net/forum.php?m ... &fromuid=126605 if exist %windir%\SysWOW64 (start addwim.exe)else (start addwim.cmd) addwim.exe里的addwim.cmd与外面的addwim.cmd什么区别也没有,重点是压成自解压时选64位模块。我一开始用winrar打成自解压缩包提示找不到bcdedit命令,查了下是因默认自解包执行批处理命令是32位环境,重定向到SysWOW64里面去。想了个办法:将addwim.cmd压缩成64位自解包;用批处理判断是否存在SysWOW64,存在运行addwim.exe不存在运行addwim.cmd 。 |
guies 发表于 2020-8-6 11:42 我是管理员用户啊 关了UAC,就不需要右健操作的啊。 而且,不用RAR打包。直接运行是生效的!!! |
hua_wuxin 发表于 2020-8-6 12:27 不是很明白,我指定路径,他删别的? |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.