我正在寫一點WPF實用程序來管理主機文件中的條目以用於開發目的。正如你可能知道hosts文件受到較新的操作系統(Win 7/2008/Vista)的保護。如何以編程方式編輯Windows 7/Server 2008中的hosts文件?
我已經向我的應用程序添加了一個清單,將requestedExecutionLevel設置爲「requireAdministrator」,詳細信息請參見here(使用「簡單方法」)和相關問題here。
不幸的是,這並沒有爲我工作。啓動應用程序時沒有提示提示,並且爲hosts文件調用File.AppendText仍然會導致System.UnauthorizedAccessException異常拋出:「訪問路徑'C:\ Windows \ System32 \ drivers \ etc \ hosts'是拒絕「。
HostsChanger.exe.manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="HostsChanger" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
任何想法?
因此,如果您不升級,訪問受保護註冊表項的異常是完全可以預料的。儘管我沒有使用清單來記住所有的步驟,但我不知道爲什麼你所嘗試的並不適合你。 – 2010-07-07 09:29:31
是的,預計會發生異常...和高程應該可以解決這個問題,但缺少提示表明高程不會發生。 – bszom 2010-07-07 10:01:23
我正在尋找一個簡單的主機交換器程序,但我還沒有找到一個 – JasonDavis 2012-09-09 17:26:00