我正在写一点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