|
|
现在是一个超级运行时代,大程序带来了大内存,大内存无疑把64位系统逐步推向主流。
小弟昨天编好的bat 在任何WIN操作系统下运行都没有问题。
但是只要使用任一软件打包成exe后,在32位XP、32位Win7下运行没有问题,一旦到64位Win7下运行,就会出现问题。
后来发现此exe在win7 64下被认作 32位exe ,所以系统会自动将此程序相关执行命令作转向,主要转向如下:
1、凡是对 system32 目录的读、写、删,会自动转向到 sysyWoW64 去操作;
2、凡是对 Program Files 目录的读、写、删,会自动转向到 Program Files (x86)去操作;
3、凡是对注册表 HKEY_LOCAL_MACHINE\SOFTWARE 或者 HKEY_CURRENT_USER\Software 的操作会自动转向到相应Software目录下的 Wow6432Node 项下去操作。
以上的3个转向就让32位的exe无法执行64位的相关目录与注册表。32位的程序无法服务64位系统!
而bat在32位XP、32位Win7下自动调用的是32位cmd操作,在64位Win7下会自动调用64位的cmd操作,均可以对任何目录、注册表项作处理。
现在的问题是:
1、有没有可以讲bat转成64位exe的封装软件??
(感觉到最新款的exescript似乎可以支持64位,截图如下,不知道是不是呢?只是现在没有正式版可用,试用的也就只支持32位的)
2、
C#里面可以调用相关的API来关闭和打开这种转向。常用的函数有3个:
Wow64DisableWow64FsRedirection(关闭系统转 向),
Wow64RevertWow64FsRedirection(打开系统转向),
Wow64EnableWow64FsRedirection(打 开系统转向)。
请问批处理bat有没有类似的转向开关呢?? |
|