文件系统重定向器
%windir%\System32 目录为 64 位Windows上的 64 位应用程序保留。 创建 DLL 的 64 位版本时,不会更改大多数 DLL 文件名,因此 32 位版本的 DLL 存储在不同的目录中。 WOW64 使用 文件系统重定向器 隐藏此差异。
在大多数情况下,每当 32 位应用程序尝试访问 %windir%System32、%windir%\lastgoodsystem32\ 或 %windir%\regedit.exe时,访问都会重定向到特定于体系结构的路径。
原始路径 | 32 位 x86 进程的重定向路径 | 32 位 ARM 进程的重定向路径 |
---|---|---|
%windir%\System32 | %windir%\SysWOW64 | %windir%\SysArm32 |
%windir%\lastgoodsystem32\ | %windir%\lastgoodSysWOW64\ | %windir%\lastgoodSysArm32\ |
%windir%\regedit.exe | %windir%\SysWOW64\regedit.exe | %windir%\ SysArm32\regedit.exe |
开发中碰到的问题,32node使用exec调用osk.exe 在32位系统中可以。64位不可以报没有方法找不到。在控制台直接调用也可以。查看路径C:\Windows\System32\osk.exe存在。C:\Windows\SysWOW64\osk.exe不存在。
解决方法将osk.exe复制一个到SysWOW64里面。(主要需要用管理员启动)