Что такое INI-файлы и для чего они нужны
Приветствую,Всех читателей интернет ресурса WindowsFan.Ru.
Возможно, вы уже обращали внимание, что при включении функции отображения скрытых файлов и папок на рабочем столе, в корневых разделах, а также некоторых каталогах обнаруживаются полупрозрачные иконки файлов с незнакомым расширением INI.
Что такое INI-файлы
Что такое INI-файлы
Неопытные пользователи нередко принимают их за вирусы и удаляют, чего делать, конечно же не следует. Так что же такое INI-файлы и для чего они нужны в Windows? На этом вопрос мы постараемся ответить в этом небольшом посте.
INI-файлы имеют столь же древнюю историю, как и сама Windows. По сути, файл с расширением INI это обычный текстовый документ, предназначенный для хранения каких-либо настроек. Первоначально файлы этого типа имели весьма большое значение.
Поскольку в первой версии Windows реестра как такового не существовало, все настройки операционной системы хранились в одном файле WIN.INI. В версии 3.0 появился еще один подобный файл с названием SYSTEM.INI. После этого число конфигурационных файлов INI в Windows стало стремительно расти.
Тем временем Windows совершенствовалась, ее структура становилась все более сложной, и вскоре стало очевидным, что хранить системные и программные настройки в ini-файлах не только неудобно, но и непрактично. Ведь INI-файлы имеют массу недостатков.
Они не поддерживают юникод, двупоточную запись, точную настройку доступа, в них нельзя хранить двоичные данные. Кроме того они подвержены атакам отказа в обслуживании и к тому же медленно обрабатываются. Все это привело к тому, что начиная с версии 95, объектом хранения настроек в Windows стала централизованная база данных, ныне известная как реестр.
Переход не был резким, часть данных по-прежнему хранилась в конфигурационных файлах, да и реестр был еще тогда довольно примитивным. Но выбор был сделан окончательно и бесповоротно, и уже в XP практически все важные настройки «переехали» в реестр.
Сегодня INI-файлы служат в основном для хранения различных второстепенных параметров, например настроек внешнего вида папок, рабочего стола и т.д. Также INI-файлы активно используются различным программным обеспечением, Unix-системами и IDE.
На практике простым пользователям чаще всего приходится сталкиваться с одним типом INI-файлов, а именно desktop.ini. Используется этот файл для настройки внешнего вида папок. Его содержимое обычно представлено отдельными блоками или секциями, каждая из которых включает набор параметров, организованных по типу ключ-значение.
Например, параметр IconFile отвечает за стандартный значок каталога, Owner запрещает или открывает к нему доступ, а InfoTip позволяет добавлять к папкам всплывающие текстовые комментарии по типу файлов и ярлыков.
Другие типы конфигурационных файлов, таких как сontrol.ini, oeminfo.ini и boot.ini сегодня считаются устаревшими и практически не используются.
Встретить их можно разве что в XP и более ранних версиях Windows. Все это может указывать на то, что в будущем востребованность формата INI будет неуклонно снижаться. Уже сейчас большинство разработчиков отдает предпочтение формату XML, отличающемуся большей гибкостью и поддержкой стандартных парсеров.
На этом я пожалуй и закончу свой рассказ всем пока и до новых познавательных встреч с вами дорогие мои друзья.
Признаки присутствия на компьютере вредоносных программ
Автозапуск
Отличительным признаком большинства червей и многих троянских программ является изменение параметров системы таким образом, чтобы файл вредоносной программы выполнялся автоматически при каждом запуске компьютера. Поэтому наличие незнакомых файлов в списке файлов автозапуска также является поводом для пристального изучения этих файлов.
Где находится информация об автоматически запускаемых файлах? В множестве разных мест, и поэтому имеет смысл рассмотреть их по отдельности.
Автозагрузка в меню Пуск
Однако в связи с тем, что папка Автозагрузка известна большинству пользователей, вредоносные программы редко используют ее для автозапуска, предпочитая менее заметные способы.
Системный реестр Windows
В последнее время стандартным способом настройки автозапуска для большинства программ является использование специальных ключей реестра Windows.
На верхнем уровне реестр делится на несколько веток (пять или шесть, в зависимости от версии Windows). C точки зрения автозапуска наиболее важны две ветки:
Для настройки автозапуска в реестре Windows предназначено несколько ключей:
Например, представленная на рисунке 3.5 запись «internat.exe» служит для автозапуска одноименной программы internat.exe. Эта программа является системной утилитой Windows, отвечающей за переключение раскладки (языка) клавиатуры.
Кроме программы internat.exe, стандартными для Windows являются следующие строки запуска:
Конфигурационные файлы win.ini и system.ini
Конфигурационные файлы win.ini и system.ini разбиты на секции. Название каждой секции заключено в квадратные скобки, например, [boot] или [windows].
В файле win.ini строки запуска программ выглядят так:
Анализируя такие строки можно понять, какие файлы запускаются при старте компьютера.
В файле system.ini есть ровно одна строка, через которую чаще всего запускаются вирусы, расположена в секции [boot]:
Во всех версиях Windows стандартной программной оболочкой является explorer.exe. Если в строке shell= указано что-то отличное от explorer.exe, это с большой вероятностью вредоносная программа. Справедливости ради, нужно отметить, что существуют легальные программы, являющиеся альтернативными программными оболочками Windows. Такие программы могут изменять значение параметра shell в файле system.ini.
В Windows NT, 2000, XP и 2003 параметры стандартной оболочки задаются в реестре, в ключе HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon в параметре Shell. Значение этого параметра также в подавляющем большинстве случаев должно быть Explorer.exe.
Другие источники
Вместо того, чтобы собирать информацию об автоматически запускаемых приложениях из разных источников, можно воспользоваться системной утилитой msconfig.exe. Эта утилита входит в состав Windows 98, Me, XP и 2003 и предоставляет сводную информацию обо всех источниках объектов автозапуска.
Вид окна утилиты отличается в зависимости от операционной системы. В Windows XP она выглядит так, как изображено на рисунке 3.6.
Данные о настройках файлов system.ini и win.ini расположены на одноименных закладках. Кроме этого имеется закладка Службы, содержащая информацию о запускаемых службах в Windows XP.
В то же время, обращаться со службами нужно не менее осторожно, чем с настройками реестра. Отключение важных служб может привести к тому, что компьютер вообще не загрузится.
THandle’s Blog
TIniFile
Что такое Ini файл?
Ini файлы разделены на разделы, содержащие идентификаторы, которым, в свою очередь, можно присвоить значения.
В общем виде структура Ini файла такова:
Выражение Идентификатор = Значение очень часто называют ключом.
В Delphi работа с Ini файлами производится посредствам класса TIniFile, объявленного в юните IniFiles. TIniFile наследуется от класса TCustomIniFile, который в свою очередь, является прямым потомком TObject.
Теперь рассмотрим свойства и методы класса TIniFile.
Метод Create.
Метод Create создает экземпляр класса TIniFile, который позволяет манипулировать Ini файлом, имя которого передаётся в параметре FileName.
Если явно не указать, где именно нужно создать или найти Ini файл, Ваша программа будет искать его в каталоге Windows.
Конечно, объект класса TIniFile(как и любого другого) можно заводя переменную-указатель на этот объект. Например так:
Но нам наш экземпляр TIniFile не на передавать в процедурные подобные:
Поэтому в примерах буду использовать конструкцию with..do, не заводя никаких дополнительных переменных
Так же ни в коем случае нельзя забывать про блок try..finally..end. Во время работы с Ini-файлом вполне возможны исключительные ситуации.
Свойство FileName.
Это read only свойство хранит в себе имя Ini файла.
Значение FileName присваивается только один раз во время работы с экземпляром класса TIniFile – в методе Create.
PS: Для работы данного примера так же следует подключить модуль Dialogs, так как в нем объявлена процедура ShowMessage.
Методы WriteString, ReadString.
Объявлены следующим образом:
Процедура WriteString записывает в раздел Section, в ключ с идентификатором Ident строку Value.
Функция ReadString читает из раздела Section строку из ключа с идентификатором Ident. Если такой раздел или ключ не обнаружены в файле, то функция вернет заданный Вами параметр Default.
Методы WriteInteger, ReadInteger.
Процедура WriteInteger записывает в ключ Ident находящийся в разделе Section целое число Value.
Функция ReadInteger читает целое число из ключа с идентификатором Ident находящегося в разделе Section.
PS: На самом деле в файл будут записаны не числа, а строки. То есть в WriteInteger в файл пишется не само Value, а преобразованное в строку число — IntToStr(Value). А в ReadInteger читается сначала строка, а в результате передаётся строка, преобразованная в число с помощью функции StrToInt.
Пример:
См. примеры к методам ReadString, WriteString.
Методы WriteFloat, ReadFloat.
Процедура WriteFloat записывает в ключ Ident находящийся в разделе Section натуральное число Value.
Функция ReadFloat читает натуральное число из ключа с идентификатором Ident находящегося в разделе Section.
PS: Аналогично Write(Read)Integer в файл пишется не само число, а строки. Но в ReadFloat, если не удастся сконвертировать строку в натуральное число, поднимется исключение типа EConvertError.
Пример:
См. примеры к методам ReadString, WriteString.
Методы WriteBool, ReadBool.
Процедура WriteBool записывает в ключ Ident находящийся в разделе Section натуральное число Value.
Функция ReadBool читает натуральное число из ключа с идентификатором Ident находящегося в разделе Section.
PS: Аналогично Write(Read)Integer(Float) в файл пишется не само число, а строки. Точнее либо ‘1’, либо ‘0’.
Пример:
См. примеры к методам ReadString, WriteString.
Методы WriteDate, ReadDate.
WriteDate записывает в раздел с именем Section ключ с идентификатором Name и значением Value.
Функция ReadDate читает значение ключа с идентификатором Name, находящегося в разделе Section. Если ключ не найден, то результатом работы функции будет параметр Default. Если в ключе находится значение отличное от типа TDateTime, будет поднято исключение EConvertError. Так же как и во всех предыдущих методах чтения/записи, в Ini файле, после записи в него даты, будут находится строки, а при чтении будет выполнено преобразование в TDateTime.
Методы WriteTime, ReadTime.
WriteTime, ReadTime являются полными копиями WriteDate, ReadDate, но пишут не дату, а время.
Пример:
См. Пример к методам WriteDate, ReadDate.
Методы WriteDateTime, ReadDateTime.
Эти два метода класса TIniFile записывают в файл дату и время и соответственно читают их. В остальном они схожи с WriteDate и ReadDate.
Пример:
См. Пример к методам WriteDate, ReadDate.
Методы WriteBinaryStream, ReadBinaryStream.
Процедура WriteBinaryStream записывает в ключ с идентификатором Name раздела Section данные из потока Value. Во время работы процедуры данные из потока преобразуются в шестнадцатеричную строку, и уже после этого записываются в файл.
Функция ReadBinaryStream читает в поток Value значение ключа с идентификатором Name, находящегося в разделе Section. Результатом является размер потока.
Пример:
Положите на форму компонент TMemo и две кнопки(TButton).
Метод ReadSection.
Читает все идентификаторы ключей в разделе Section и заносит их в Strings.
Положите на форму компонент TMemo.
В Memo1 отобразится следующий список:
Метод ReadSections.
Читает имена всех разделов в Ini файле и заносит их в Strings.
Положите на форму компонент TMemo.
В Memo1 отобразится следующий список:
Метод ReadSectionValues.
Читает все ключи (идентификатор=значние) в разделе Section и заносит их в Strings.
Положите на форму компонент TMemo.
В Memo1 отобразится следующий список:
Метод DeleteKey.
Метод DeleteKey удаляет из Ini файла ключ в разделе Section с идентификатором Ident.
Метод EraseSection.
Метод EraseSection удаляет целый раздел из Ini файла. Параметр Section – имя раздела, который надо удалить.
Метод ValueExists.
Объявлен в виде следующей функции:
Функция проверяет наличие ключа с идентификатором Ident в разделе Section Ini файла. Если данный ключ в разделе присутствует — функция вернет true, иначе false.
Метод SectionExists.
Объявлен в виде функции:
Функция проверяет наличие раздела Section в Ini файле. Если данный раздел в файле присутствует — функция вернет true, иначе false.
Зачем нужен файл Desktop.ini?
Если вы недавно работали с настройками File Explorer в Windows, вы можете быть удивлены, обнаружив некоторые файлы с именем desktop.ini во всех папках на вашем компьютере или устройстве. Два файла desktop.ini, представленные на вашем рабочем столе, являются наиболее заметными и вызывают много вопросов: что это за файлы и почему на рабочем столе их два? Какую цель они служат? Как вы от них избавляетесь? В этом руководстве мы стремимся пролить свет на эти вопросы, поэтому читайте дальше, чтобы найти ответы, которые вы ищете.
Desktop.ini — это файл, который определяет способ отображения папки в Windows. Хотя эти файлы обычно скрыты, их можно найти в любой папке, где угодно на вашем компьютере, и они содержат информацию и настройки, относящиеся к этой папке, например, значок, используемый для нее, и ее локализованное имя.
Всякий раз, когда вы вносите определенные изменения в папку, Windows автоматически создает файл desktop.ini внутри этой папки. Любые изменения в конфигурации и настройках макета содержащейся папки сохраняются в файле desktop.ini, и нет никаких настроек для изменения этого поведения, поскольку именно так запрограммирована Windows для работы. Если щелкнуть правой кнопкой мыши или нажать и удерживать любой файл desktop.ini, а затем щелкнуть или коснуться Свойства, вы увидите, что поле «Тип файла» указывает на это, отображая настройки конфигурации.
Почему мой рабочий стол показывает два файла desktop.ini?
Теперь вы должны иметь общее представление о том, что такое файлы desktop.ini. Однако это по-прежнему не объясняет, почему большинство папок содержат только один файл desktop.ini, а на рабочем столе их две. Чтобы разобраться в этом, нам нужно объяснить кое-что о вашем рабочем столе.
Прежде всего, рабочий стол — это папка, уникальная для каждой учетной записи пользователя, доступ к которой может получить только этот пользователь или администратор. Эта папка находится по следующему пути: «C:\Users\Ваше имя пользователя\Desktop»
Во-вторых, есть папка Public Desktop, которую все пользователи вашего компьютера используют автоматически. Он находится в папке «C:\Users\Public» и содержит элементы, доступные на стандартном рабочем столе каждого пользователя.
Рабочий стол, отображаемый Windows при запуске компьютера или устройства, представляет собой комбинацию рабочего стола вашего пользователя и папки Public Desktop. Вы видите два файла desktop.ini, потому что ваш рабочий стол представляет собой комбинацию из двух папок, каждая со своим собственным desktop.ini: одна для вашей учетной записи пользователя и одна для общего рабочего стола.
Почему я вдруг вижу файлы desktop.ini?
Файлы Desktop.ini не всегда видны, и большинство пользователей Windows никогда не видят их. Это связано с тем, что они являются защищенными файлами операционной системы, поэтому по умолчанию Windows скрывает эти файлы и рекомендует пользователям также скрывать их. Вы (или кто-либо, использующий ваш компьютер) должны настроить Windows на отображение как скрытых, так и защищенных файлов, и именно поэтому у вас, кажется, везде присутствуют файлы desktop.ini. Чтобы Windows отображала эти типы файлов, сначала необходимо открыть окно «Параметры проводника». Один из способов сделать это — использовать поле поиска на панели задач, чтобы ввести ключевые слова «параметры папки» и нажать «Параметры проводника».
Затем в разделе «Дополнительные параметры» на вкладке «Вид» установите флажок «Показать скрытые файлы, папки или диски» и снимите флажок «Скрыть защищенные файлы операционной системы».
Появится предупреждение, сообщающее вам о рисках, связанных с неправильным обращением с файлами операционной системы, и запрашивающее подтверждение вашего выбора. Нажмите Да.
Подтвердите свой выбор еще раз, нажав или коснувшись OK, и файлы desktop.ini сразу же станут видны на вашем компьютере или устройстве Windows.
Как избавиться от файлов desktop.ini? Могу ли я удалить их?
Удаление файлов desktop.ini не рекомендуется, даже если это не вредно. Поскольку их единственная роль — хранить некоторые параметры визуальной настройки, их удаление не повредит вашей установке Windows. Единственным последствием этого действия является то, что их папка теряет свой внешний вид при отображении в Windows, но вы можете еще раз настроить ее, и снова появится desktop.ini. Если вы не хотите, чтобы файлы Desktop.ini находились где-либо на вашем компьютере, лучше всего скрыть системные файлы, защищенные Windows. Для этого откройте окно «Параметры проводника». Наиболее удобный способ — использовать поле поиска на панели задач, чтобы ввести ключевые слова «параметры папки» и нажать «Параметры проводника». Затем перейдите на вкладку «Вид», где можно включить «Скрыть защищенные системой файлы (рекомендуется)» или выберите «Не показывать скрытые файлы, папки или диски»в разделе «Дополнительные настройки». Когда закончите, нажмите OK.
Файлы desktop.ini теперь скрыты от глаз и больше не беспокоят вас.
Теперь мы знаем, что такое файлы desktop.ini и почему на нашем рабочем столе их два. Прочитав это руководство, не стесняйтесь поделиться с нами, хотите ли вы сохранить их или нет. Что ты с ними сделал? Вы их удалили или следовали нашим рекомендациям и решили скрыть их от глаз? Дайте нам знать в комментариях ниже.
Что такое Desktop.ini файл
А между тем, с помощью Desktop.ini можно оформить вид папок в нужном нам виде, группируя по необходимому пользователю принципу.
Всё, что заканчивается расширением .ini — инертно и обездвижено и несёт в себе лишь описательную функцию в виде скрипта. Desktop.ini — системный файл Windows, предназначенный для настройки отображения внешнего вида, различных настроек папок и ярлыков к файлам во всех системных директориях Windows (созданных самой системой). В ней вид каждой из папок можно настроить по своему усмотрению (сменить ярлык), придать ей некоторые специальные свойства (права, доступ к ней) или лишить таковых. Всё это находит отображение в файле Desktop.ini, который является файлом формата инициализации вида папки по умолчанию (и пусть вас слово desktop — рабочий стол — не смущает: появляется он не только в этой папке). Для пользователя он не играет никакой роли, однако, как понимаете, храниться где-то должен, а потому разработчики и спрятали файл, придав ему свойства скрытого. Грубо говоря, действуя от противного, если вы обнаружили в директории или папке системы файл desktop.ini — вы находитесь в папке, созданной в Windows с какой-то целью и изменения с этой папкой ( они потребуют от пользователя дополнительных прав ) означают определённые изменения в системе.
Desktop.ini — вирус?
Ни в коем случае. Он появляется тогда, когда вы хоть немного сменили дефолтную конфигурацию директории (Рабочий стол такая же папка как и остальные), придав ярлыкам и файлам некий вид, отличный от того, что по умолчанию. Однако один момент существует — если файл Desktop.ini отображается при выставленной опции Скрывать системные файлы и папки, перед нами вирус, маскирующийся под системный файл.
Тогда почему их иногда аж по две штуки на папку?
Значит эта директория может настраиваться не одним пользователем, и каждый из этих файлов несёт настройки для конкретного пользователя. Например, Рабочий стол не только ваш, он ещё может быть и Общим Рабочим столом (папка Пользователи/Общие), но со стандартным набором ярлыков для любого зарегистрированного юзера.
Легко. Однако настройки директории сбросятся до «по умолчанию». Для вас это может оказаться не удобным. И я говорю не только про внешний вид: к «заводским» настройкам вернуться АБСОЛЮТНО все настройки для папок. Этого не заметить, если вы их меняли, не получится. Но если решились на удаление, попробуйте после этого изменить настройки снова — и вы увидите, что файл Desktop.ini на месте.
Как избавиться от файла раз и навсегда?
Никак. Если папка системная, он будет появляться в ней снова и снова. Единственное решение — запретить отображение системных файлов
Можно посмотреть на него поближе и попрактиковаться в редактировании файла. Выберите нужную папку, созданную вами лично и придайте ей свойства системной. С правами администратора (удерживая Ctrl + Shift) запустите консоль Windows и укажите к папке путь в формате:
attrib +s имя-папки
Например, к выбранной папке Аудиокниги на диске D: я применю команду:
Она только что стала доступной Только для чтения и в ней созданы условия для установки специфических конфигураций:


















