标题:
[注册表类]
关于64位操作系统秕处理运行的问题,特难,求助。
[打印本页]
作者:
wspj2000
时间:
2023-3-31 09:24
标题:
关于64位操作系统秕处理运行的问题,特难,求助。
批处理命令很简单,regedit /s aaa.reg
在32和64位操作系统下,双击此批处理都是正常的。
但是使用winrar将此批处理压缩成自解压程序,解压后自动运行此批处理,则在32位系统下正常,在64位系统下就不正常了,显示程序成功运行,但实际并未起到导入注册表的作用。
特求助,万分感谢!
作者:
czjt1234
时间:
2023-3-31 10:38
没道理啊,你把文件传到百度网盘
作者:
wspj2000
时间:
2023-3-31 10:53
回复
2#
czjt1234
个人估计双击批处理时调用的regedit和自动运行批处理时调用的版本不一样,因为64位系统里,是有两个regedit.exe的,一个位于C:\Windows,一个位于C:\Windows\SysWOW64,但是我试过指定两个路径中的regedit.exe,也是都不行。
作者:
wspj2000
时间:
2023-3-31 11:15
原因找到了,但依然无法解决。
双击批处理时调用的是64位的regedit.exe,但打包成exe后自动运行时调用的是32位的regedit.exe.
求大神帮忙 。
作者:
czjt1234
时间:
2023-3-31 13:07
压缩软件的版本是啥
作者:
czjt1234
时间:
2023-3-31 13:14
注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
在64位系统,32应用程序会变成指向
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\
估计是这个问题
批处理没问题。那么是压缩软件的问题,64位的压缩软件?
作者:
wspj2000
时间:
2023-3-31 15:56
回复
6#
czjt1234
不是64位的压缩软件,而是用了很多年的nsis文件夹压缩吕中,但用winrar压缩时确实是64位的,结果一样。
现发现在64位系统“运行”里输入regedit,或是双击批处理,则运行的regedit.exe是64位版本。
如果把批处理制作成自解压程序后双击运行,则运行的regedit.exe肯定是32位版本,诡异的是用everything搜索出来的regedit.exe有两个大小不一样的,明显一个是32bit一个是64bit,但双击运行却永远只能运行成32bit版本的。
高手可以自测下。
作者:
wspj2000
时间:
2023-3-31 16:13
终于找到解决办法了,思路来自czjt1234大神的64位系统重定向。解决代码如下:
@echo off
if"%ProgramFiles(x86)%" =="" goto MainCode
if not exist %SystemRoot%\\Sysnative\\cmd.exe goto MainCode
%SystemRoot%\\Sysnative\\cmd.exe /C"%~f0" %*
goto :EOF
:MainCode
set Program
regedit.exe /s aa.reg
十分感谢czjt1234!
作者:
wspj2000
时间:
2023-3-31 16:21
这个方法还是判断系统是否64位系统,如是则调用64位的cmd.exe来解决的问题的。
欢迎光临 批处理之家 (http://www.bathome.net/)
Powered by Discuz! 7.2