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位程序的一個重定向的機制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章