Я пишу небольшую утилиту WPF для управления записями в файле hosts для целей dev. Как вы знаете, файл hosts защищен более новыми ОС (Win 7/2008/Vista).Как я могу программно редактировать файл hosts в Windows 7/Server 2008?
Я добавил манифест в мое приложение, чтобы установить requestExecutionLevel в «requireAdministrator», как описано here (используя «простой способ») и в связанном с ним вопросе here.
К сожалению, это не сработало для меня. Когда я запускаю приложение, нет приглашения на повышение, а вызов файла File.AppendText для файла hosts по-прежнему вызывает выдачу 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>
Любые идеи?
Таким образом, исключение при доступе к защищенным разделам реестра полностью ожидается, если вы не поднимаете. Я не использовал манифесты достаточно, чтобы помнить все шаги, хотя, поэтому я не знаю, почему то, что вы пробовали, не работает на вас. –
Да, исключение ожидается ... и возвышение должно решить его, но отсутствие подсказки указывает на то, что высота не происходит. – bszom
Im ищет простую программу Hostschanger, но я еще не нашел ее – JasonDavis