Автор: Unconnected 30.07.2009 21:59
Здравствуйте.
У меня такая проблема, нужно добавить в файл system.ini, который в директории Windows, одно значение в секцию Shell. Проблема в том, что класс TIniFile не справляется, просто не добавляет. В сети нашёл функцию, которая в названии топа, только вот непонятное какое-то описание...
Цитата
WritePrivateProfileString
Описание:
function WritePrivateProfileString(ApplicationName, KeyName, Str, Filename:
PChar): Bool;
Ищет в FileName указанный заголовок пpикладной задачи и имя клавиши, заменяя
значение на указанное в Str.
Паpаметpы:
ApplicationName: Имя заголовка пpикладной задачи.
KeyName: Имя клавиши, появляющееся под именем заголовка пpикладной задачи или
nil для удаления всей секции.
Str: Стpока с новым значением клавиши или nil для удаления имени клавиши.
Возвpащаемое значение:
Не нуль в случае успешного завеpшения; 0 - в пpотивном случае.
функция находится в файле kernel32.dll
Какие-то клавиши под заголовками прикладных задач...
Всё это надо мне за тем, чтобы добавить файл в автозагрузку. Именно таким образом.
Автор: volvo 30.07.2009 22:32
Английским по белому: http://msdn.microsoft.com/en-us/library/ms725501%28VS.85%29.aspx написано, что эта функция оставлена только для совместимости с 16-битными приложениями. Кстати, там же есть и примеры использования, если все-таки хочется пользоваться именно INI-файлом, а не реестром.
Цитата
класс TIniFile не справляется, просто не добавляет
А ты содержимое реестра проверял, действительно в ветке HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run ничего нет? После дозаписи в win.ini, например, изменений тоже не видно, Windows автоматически производит нужные изменения в реестре. Вот в этой программе, например, было такое: http://forum.pascal.net.ru/index.php?s=&showtopic=24577&view=findpost&p=136043 Была попытка изменения реестра, хотя напрямую это не делалось...