Ошибка модуля ini файла

Обновлено: 06.07.2024

Написал программу-настройщик, которая использует IniFiles. Хранит свои настройки там же, где ее .EXE.

Как вы знаете в Windows 7 намудрили с правами и метод ConfigIni := TIniFile.Create(ExtractFilePath(paramstr(0)) + 'dosbox.conf'); не дает программе записывать значения в INI файл в семерке, если программа находится в директории Program Files.

Какие есть способы это сделать? Надо чтобы программа работала в Win2000-Win7 корректно.

Использую Rad Studio 2010 (Delphi 2010).

хранить данные программы там где и положено им быть, т.е. в:
c:\Users\<имя пользователя>\AppData\Roaming\<имя программы>\ хранить данные программы там где и положено им быть, т.е. в:
c:\Users\<имя пользователя>\AppData\Roaming\<имя программы>\

Думал уже про это, но не подойдет. Моя программа настраивает конфиг другой программы (а конфиг этой программы должен лежать рядом с ней).

Читал, что Win7 создает некую виртуальную директорию с копией Program Files, можно ли как-то с ней работать? Или как еще сделать возможным запись в PF? Накрайний случай сойдет и запрос на разрешения запуск программы, как при запуске сетапов.

можно запустить "exe конфигуратор" (назовем его так пока) из основной программы (которая запущена под каким-то пользователем) с правами администратора, для которого запросов UAC не будет. можно запустить "exe конфигуратор" (назовем его так пока) из основной программы (которая запущена под каким-то пользователем) с правами администратора, для которого запросов UAC не будет.

Дело в том, что эта программа является лаунчером к игре, в которой есть пункт настроек игры.

Перенести конфиг или еще что-то не получится. Надо как-то писать в PF (в той папке, где и бинарник лаунчера), ведь пишут же другие программы (сетапники например. только как они вызывают алерт UAC?). Должны же мелкософтцы реализовать это другим образом (ну не хранить же все в домашней папке юзера). Это вообще невозможно?!

а, ну скопируй в папку исходника программы WindowsCert.RES и добавь:

в раздел implementation главного модуля программы, например сразу после
и получишь запрос UAC при запуске с правом писать.

NumLock, спасибо, попробую.

И на последок хочу спросить, что будет при запуске на старых ОС без UAC? (Win2000, WinXP) Просто винда проигнорирует это, ведь там все от админа обычно исполняется?

Варианты:
- запускать процесс с правами админа. нужен соответсв. манифест (ищи приском - здесь кто-то клал его в общий доступ; или сделай сам);
- разрешить запись в нужную папку (можно руками, можно "покурить" MSDN и написать соотв. код);
- создавать link на файл в нужной папке, а сам файл класть в другое место (если не ошибаюсь, то работать будет только на NTFS);
- написать свой писатель/читатель ini-файла, который будет при открытии указывать нужные права для доступа к файлу (тоже в MSDN).

Файл был разработан Microsoft для использования с программным обеспечением Windows. Здесь вы найдете подробную информацию о файле и инструкции, как действовать в случае ошибок, связанных с system.ini на вашем устройстве. Вы также можете скачать файл system.ini, совместимый с устройствами Windows 10, Windows XP, Windows 8.1, Windows 8, Windows 7, Windows Vista, которые (скорее всего) позволят решить проблему.

For Windows

Совместим с: Windows 10, Windows XP, Windows 8.1, Windows 8, Windows 7, Windows Vista

Исправьте ошибки system.ini

Информация о файле

Основная информация
Имя файла system.ini
Расширение файла INI
Тип Settings
Описание Windows Initialization
Программного обеспечения
программа Windows XP
Программного обеспечения Windows
автор Microsoft
Версия программного обеспечения XP
подробности
Размер файла 231
Самый старый файл 2006-09-18
Последний файл 2017-04-24

system.ini

Наиболее распространенные проблемы с файлом system.ini

  • system.ini поврежден
  • system.ini не может быть расположен
  • Ошибка выполнения - system.ini
  • Ошибка файла system.ini
  • Файл system.ini не может быть загружен. Модуль не найден
  • невозможно зарегистрировать файл system.ini
  • Файл system.ini не может быть загружен
  • Файл system.ini не существует

system.ini

Не удалось запустить приложение, так как отсутствует файл system.ini. Переустановите приложение, чтобы решить проблему.

Проблемы, связанные с system.ini, могут решаться различными способами. Некоторые методы предназначены только для опытных пользователей. Если вы не уверены в своих силах, мы советуем обратиться к специалисту. К исправлению ошибок в файле system.ini следует подходить с особой осторожностью, поскольку любые ошибки могут привести к нестабильной или некорректно работающей системе. Если у вас есть необходимые навыки, пожалуйста, продолжайте.

Помните, прежде чем предпринимать какие-либо действия, связанные с системными файлами, сделайте резервную копию ваших данных!

Шаг 1.. Сканирование компьютера на наличие вредоносных программ.

Virus Scan

Файлы Windows обычно подвергаются атаке со стороны вредоносного программного обеспечения, которое не позволяет им работать должным образом. Первым шагом в решении проблем с файлом system.ini или любыми другими системными файлами Windows должно быть сканирование системы на наличие вредоносных программ с использованием антивирусного инструмента.

Если по какой-либо причине в вашей системе еще не установлено антивирусное программное обеспечение, вы должны сделать это немедленно. Незащищенная система не только является источником ошибок в файлах, но, что более важно, делает вашу систему уязвимой для многих опасностей. Если вы не знаете, какой антивирусный инструмент выбрать, обратитесь к этой статье Википедии - сравнение антивирусного программного обеспечения.

Ошибка при записи в файл
Здравствуйте! Пишу программу для записи для теста. Возникла ошибка I/O error 6. Смотрел в интернете.

Возникает ошибка при записи в файл Excel
При написания кода в Delphi ( приведенного ниже) компиляция происходит нормально, без ошибок. Но.


Вопрос по таймеру и ошибка при записи информации в файл
Всем привет! Пишу игру на Delphi XE8! Но не выходит! В таймере когда программа поняла что sec = 0.

Это путь относительно текущей директории.
Судя по форме записи пути ты ожидаешь что текущей всегда будет являться не иначе как директория, где расположен исп.файл приложения, что в ряде случаев может не соответствовать действительности.

Добавлено через 5 минут

О, уже в другую сторону оглобли завернул)
Только что было про "неполный путь", а теперь, оказывается, анейбл ту райт..
Это ж две разные разницы !
Анейбл ту райт не имеет ничего общено с предыдущим описанием ошибки - проблема ведет к правам на доступ к файлу (или директории где он расположен или должен быть создан) по записи.

программу от имени администратора запускай все будет ОК.

Добавлено через 32 секунды
Unable to write to setting/setting.ini - запрещено записывать в файл

Unable to write to setting/setting.ini - запрещено записывать в файл Ты бы английский подучил. Там нет слова "запрещено", там есть констатация факта: не могу записать в setting/setting.ini.
программу от имени администратора запускай все будет ОК. Не будет. Это плохая программа, если ее надо запускать под администратором, чтобы она смогла записать Ini-файл. К тому же,

, то есть, я правильно понимаю твою логику, kaspersky, что при указании полного пути программа сама запускается от имени администратора?

Вот и указывай полный путь, ExtractFilePath(Application.Exename) не просто так придумали.

Ты бы английский подучил. Там нет слова "запрещено", там есть констатация факта: не могу записать в setting/setting.ini.
Не будет. Это плохая программа, если ее надо запускать под администратором, чтобы она смогла записать Ini-файл. К тому же,
, то есть, я правильно понимаю твою логику, kaspersky, что при указании полного пути программа сама запускается от имени администратора?

Вот и указывай полный путь, ExtractFilePath(Application.Exename) не просто так придумали.

_________________________________________________
Ну я не писал что "при указании полного пути программа сама запускается от имени администратора?" - где ты это прочитал ??

____________________________________
а то что с английским плохо, то я не переводил а написал что типо программе запрещено запись в файл (т.е. запись в системном диски- надеюсь понял мою мысль)

Написал программу-настройщик, которая использует IniFiles. Хранит свои настройки там же, где ее .EXE.

Как вы знаете в Windows 7 намудрили с правами и метод ConfigIni := TIniFile.Create(ExtractFilePath(paramstr(0)) + 'dosbox.conf'); не дает программе записывать значения в INI файл в семерке, если программа находится в директории Program Files.

Какие есть способы это сделать? Надо чтобы программа работала в Win2000-Win7 корректно.

Использую Rad Studio 2010 (Delphi 2010).

хранить данные программы там где и положено им быть, т.е. в:
c:\Users\<имя пользователя>\AppData\Roaming\<имя программы>\ хранить данные программы там где и положено им быть, т.е. в:
c:\Users\<имя пользователя>\AppData\Roaming\<имя программы>\

Думал уже про это, но не подойдет. Моя программа настраивает конфиг другой программы (а конфиг этой программы должен лежать рядом с ней).

Читал, что Win7 создает некую виртуальную директорию с копией Program Files, можно ли как-то с ней работать? Или как еще сделать возможным запись в PF? Накрайний случай сойдет и запрос на разрешения запуск программы, как при запуске сетапов.

можно запустить "exe конфигуратор" (назовем его так пока) из основной программы (которая запущена под каким-то пользователем) с правами администратора, для которого запросов UAC не будет. можно запустить "exe конфигуратор" (назовем его так пока) из основной программы (которая запущена под каким-то пользователем) с правами администратора, для которого запросов UAC не будет.

Дело в том, что эта программа является лаунчером к игре, в которой есть пункт настроек игры.

Перенести конфиг или еще что-то не получится. Надо как-то писать в PF (в той папке, где и бинарник лаунчера), ведь пишут же другие программы (сетапники например. только как они вызывают алерт UAC?). Должны же мелкософтцы реализовать это другим образом (ну не хранить же все в домашней папке юзера). Это вообще невозможно?!

а, ну скопируй в папку исходника программы WindowsCert.RES и добавь:

в раздел implementation главного модуля программы, например сразу после
и получишь запрос UAC при запуске с правом писать.

NumLock, спасибо, попробую.

И на последок хочу спросить, что будет при запуске на старых ОС без UAC? (Win2000, WinXP) Просто винда проигнорирует это, ведь там все от админа обычно исполняется?

Варианты:
- запускать процесс с правами админа. нужен соответсв. манифест (ищи приском - здесь кто-то клал его в общий доступ; или сделай сам);
- разрешить запись в нужную папку (можно руками, можно "покурить" MSDN и написать соотв. код);
- создавать link на файл в нужной папке, а сам файл класть в другое место (если не ошибаюсь, то работать будет только на NTFS);
- написать свой писатель/читатель ini-файла, который будет при открытии указывать нужные права для доступа к файлу (тоже в MSDN).

Читайте также: