Process.Start(@"C:\Windows\System32\osk.exe") 找不到指定文件


在Window 64位系统中,System32文件夹存放64位的程序,SysWoW64文件夹存放32位程序,当一个32位程序访问System32文件夹时,系统会自动重定向到SysWoW64文件夹,如:当32位程序通过CreateProcess创建C:\Windows\System32\osk.exe进程时,系统自动重定向到C:\Windows\SysWoW64\osk.exe文件,而SysWoW64文件夹下并不存在nbtstat程序,于是返回的错误码就是2(即系统找不到指定的文件)。

解决该问题的方法是通过路径C:\Windows\sysnative\****的方式来访问系统文件,上面的情况通过C:\Windows\sysnative\osk.exe这个路径就可以解决这个问题。

C:\Windows\sysnative这个文件夹实际上并不存在,是Windows 64位系统对32位程序访问64位程序的一个重定向的机制。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM