最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# Process.Start()找不到系統文件的解決方法

 更新時間:2023年09月06日 09:24:17   作者:yizhou2010  
vs1027在X64應用程序下執(zhí)行process.start()時,OK;但是在X86應用程序下執(zhí)行process.start(),報錯:找不到系統文件,本文就詳細的介紹一下解決方法,感興趣的可以了解一下

問題描述

vs1027在X64應用程序下執(zhí)行process.start()時,OK;但是在X86應用程序下執(zhí)行process.start(),報錯:找不到系統文件

if (kbpr.HasExited)
{
	kbpr = Process.Start(@"C:\Windows\System32\osk.exe");
}

網上搜索良久,發(fā)現原因為:windows重定向搞得鬼

在64位的Windows操作系統中,為了兼容32位程序的運行,64位的Windows操作系統采用重定向機制。目的是為了能讓32位程序在64位的操作系統不僅能操作關鍵文件文夾和關鍵的注冊表并且又要避免與64位程序沖突;因此,32位應用程序的運行是通過WOW64的模擬器來實現的。WOW64 是一個由操作系統提供的兼容性環(huán)境,它使得 32 位應用程序能夠在 Windows 64 位操作系統上運行,在系統的Windows目錄下,存在System32和SysWOW64兩個文件夾:

System32文件夾下存放的是64位DLL

SysWOW64文件夾下存放的是32位DLL

因此,如果我們用32位程序去訪問c:\windows\system32,不管我們用硬編碼還是其它的方式,系統都會自動地給我們轉向到C:\windows\syswow64下面。

禁止系統的重定向的解決辦法是調用下面的API函數

禁用系統重定向用下面的函數:
BOOL Wow64DisableWow64FsRedirection(PVOID OldValue);
恢復系統重定向用下面的函數:
BOOL Wow64RevertWow64FsRedirection(PVOID OldValue);

解決辦法

具體代碼如下:

// 關閉64位(文件系統)的操作轉向
[DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr);
// 開啟64位(文件系統)的操作轉向
[DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool Wow64RevertWow64FsRedirection(IntPtr ptr);
IntPtr oldWOW64State = new IntPtr();
Wow64DisableWow64FsRedirection(ref oldWOW64State);   // 關閉64位(文件系統)的操作轉向
Wow64RevertWow64FsRedirection(oldWOW64State);        // 開啟64位(文件系統)的操作轉向

注1

網上還有中辦法,將路徑c:\windows\system32\改為c:\windows\sysnative\,但是我嘗試,好像不管用;可能是需要注冊表或者哪里設置過吧

注2

當然最簡單的辦法,是將應用程序改為64位,就不存在以上問題了。

【參考1】https://www.cnblogs.com/iamlucky/p/5998086.html

【參考2】https://www.bbsmax.com/A/mo5kj04KJw/

到此這篇關于c# Process.Start()找不到系統文件的解決方法的文章就介紹到這了,更多相關c# Process.Start()找不到系統文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

剑川县| 板桥市| 徐州市| 噶尔县| 彩票| 北川| 古蔺县| 嘉兴市| 江安县| 保德县| 永福县| 晋中市| 鸡东县| 恩平市| 班戈县| 娱乐| 文登市| 绥化市| 五常市| 通化县| 咸丰县| 许昌市| 庐江县| 大城县| 阜康市| 黔西县| 团风县| 海城市| 绥江县| 怀化市| 杨浦区| 九寨沟县| 奎屯市| 黄梅县| 台北市| 扎囊县| 阜城县| 新田县| 贡觉县| 满洲里市| 遵义市|