Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Инсталляторы > Добавление строк в файл hosts


Автор: semiono 19.10.16, 15:07
Нужно добваить пару строк в {sys}\drivers\etc\hosts

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    127.0.0.1       www.addr1.com
    127.0.0.1       www.addr2.com


Во-первых, хотелось бы добавить строки только при их отсутствии, то есть без повторения строк.
Во-вторых, хотелось бы учесть случай отсутствия \n в конце последней записи существующего файла.
Однако, добавлять NEWLINE в пустой файл вначале, тоже не хотелось бы, для этого я думаю можно использовать
проверку размера файла == 0 и тогда делать записи с первой строки.

Желательно не выводить окна, если Non Admin mode, чтобы всё тихо было.
Лучше бы установить права доступа на файл в любом режиме, но я думаю это лишнее, возможно даже совсем не нужно.

Автор: Profi 22.10.16, 13:49
Я думаю, что TStringList будет вполне достаточно. Однако изменить hosts без админских прав вряд ли получится, и менять права на файл - тоже. Нормальный пользователь за это спасибо не скажет!

Автор: A.I. 21.12.16, 04:31
Первый попавшийся антивирь в лучшем случае ругнется, в худшем молча грохнет.

Автор: Profi 29.12.16, 20:44
Цитата A.I. @
Первый попавшийся антивирь в лучшем случае ругнется, в худшем молча грохнет.

Хм, ну не знаю. Надо бы поэкспериментировать.
Что в любом случае не отменяет мое предыдущее высказывание!

Автор: semiono 22.01.17, 11:33
Есть круг задач которые решаются таким образом, за что думаю скажут. Например, люди устанавливают приложение, а потом батником записывают в hosts данные,
причём многие даже не знают где файл находится и что туда записывают. Тут важно доверие :D

А что там TStringList, много кода будет? Может пример кто напишет? Боюсь классов, сложно!

Автор: amk 22.01.17, 13:51
Цитата semiono @
многие даже не знают где файл находится и что туда записывают. Тут важно доверие
А некоторые время от времени заглядывают в него и чистят его от строк, которые сами туда не заносили.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)