Решил по быстрому для себя накидать одну "лентяйку" - просмотрщик и редактор файла hosts, что бы вручную до него не лазить.
НО, возникли какие то непонятки с правами доступа к этому файлу. Вроде как все нормально
Т.е. с админскими правами все нормально. Программа запускаемая с правами администратора по идее должна его переписывать. НО, программа (моя) запущенная с правами администратора не может его перепизаписать - "Отказано в доступе по пути "C:\Windows\system32\drivers\etc\hosts"".
Есть другой аспект, если текстовый редактор (AkelPad, к примеру) запустить с правами администратора (через контекстное меню) - файл редактируется. А если, к примеру, в AkelPad открыть его с обычными правами, и при попытке сохранения, когда запросит права админа (функция AkelPad) - вылетает ошибка:
Моя программа ведет себя одинаково, что запуская с правами администратора встроенным алгоритмом, что через контекстное меню. Вот не пойму, это баг или фича, то ли какие то локальные глюки (на моей ОС) или так везде. Как будто "права админа" друг другу рознь... OS - Windows 10 EntS, UAC включен, антивирус выключен. Попробуйте пожалуйста этой утилитой (во вложении) пересохранить файл hosts.-Добавлено 07.01.2023 UltimateHostsEditor - открывает файл hosts в блокноте от СИСТЕМА
Последний раз редактировалось: Adler (2023-01-09 10:59), всего редактировалось 4 раз(а)
И, кстати, классическая проблема Far Manager: запущенный с правами админа он может открыть hosts на запись, но НЕ может сохранить. Видимо, наследование прав тут изначально не работает.
Ander_73, я нашел рабочий пример редактора hosts на C# и вот сижу голову ломаю как это реализовано. Там не так все просто, как казалось, ну или оно так там реализовано "по хитрому".
nikzzzz, не помогает Там общая переменная (путь к файлу) для открываемого и сохраняемого файла, т.е. он перезаписать должен тот же файл, что и открывает. Открывает корректно все. Если бы не это:
Есть другой аспект, если текстовый редактор (AkelPad, к примеру) запустить с правами администратора (через контекстное меню) - файл редактируется. А если, к примеру, в AkelPad открыть его с обычными правами, и при попытке сохранения, когда запросит права админа (функция AkelPad) - вылетает ошибка:
то точно бы решил, что что то в софтине не так, а так возникают сомнения. Я подобные темы (по редактированию hosts) нагуглил, некоторые пишут, что есть такое, но предложенные варианты (запускать от админа) как то не работают. В одном месте писали уже про манифест с примерами, засунул к себе - не работает... P.S. Программка у всех в ошибку при попытке сохранении валится?
Последний раз редактировалось: Adler (2017-05-03 14:35), всего редактировалось 2 раз(а)
Буду иметь ввиду, если разберусь как победить права доступа. Думал наваяь её за 5 минут и забыть, но что то пошло не так ... Она мне уже вроде как и не надо (нашел куда более интересный готовый вариант), но просто интересно разобраться в чем дело.
Adler, Добрый день. Программа валиться, но AkelPad (без админа) редактирует host без проблем (запрашивает только разрешение на перезапись). PS А так есть такой "монстр" Hosts File Editor
41025(запрашивает только разрешение на перезапись)
Как то так:
P.S. Это при сохранении.
Ну мне "монстр" не нужен как раз. Хотел сделать что то максимально простое. Изначально вообще хотел, что бы при запуске просто открывался блокнот с админскими правами и открытым файлом hosts.
Adler, Приветствую. А как программа меняет hosts? Если редактирование проходит на прямую и сохранение - то будут ошибки. А вот если произвести редактирование, и сохранить в другом каталоге, а затем поменять/переместить файл hosts в его папку - так будет работать/менять/заменять.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы