![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение настроек программы в её исполняемом файле.
AlexanderMS © (2007-06-19 19:21:00)Хотелось бы осуществить сохранение настроек программы в её exe-файле. Как можно и как лучше: через сохранение данных в ресурсы либо непосредственной записью в exe-файл без использования ресурсов? Посоветуйте, пожалуйста. Просто я не нашёл примера записи ресурса в файл (искал плохо, быть может: везде - чтение уже присоединённого). Во втором случае я нашёл пример, где настройки пишутся в конец исполняемого файла. Это правильно? Ошибок не будет? Объясните, пожалуйста, как правильно сделать.
Сергей М. (2007-06-20 14:53:00) [1]
> AlexanderMS © (19.06.07 19:21)
В ресурсы гораздо проще.
Впрочем, хоть даже и не в ресурсы, но метода "грязного хака" не миновать.
Ну а "грязный хак" есть "грязный хак" - этим все сказано.
Dimaxx (2007-06-20 14:35:00) [2]
> но только $10 - 1 сразу намекает на размер массива
Ыы, вот как раз 0..15 сразу намекает на размер массива, а $10-1 как-то не особо.
Rial (2007-06-20 10:27:00) [3]> [14] Dimaxx © (20.06.07 10:10)
> > $10 - 1
> Никогда не понимал людей пишущих такой изврат... Тяжело
> написать 15? :)
В конечном счете код все равно будет сгенерирован идентичный,
но только $10 - 1 сразу намекает на размер массива.
И проще модифицировать в случае, если вместо числа
там будет константа.
Да и вид шестнадцатеричный как- то привычнее.
П.С. видимо, утро не задалось ? :)
Dimaxx (2007-06-20 10:10:00) [4]offtop:
> $10 - 1
Никогда не понимал людей пишущих такой изврат... Тяжело написать 15? :)
TUser (2007-06-20 07:39:00) [5]Я видел программу, которая настройки сохраняла стеганографически в картинке на раб. столе. Выяснилось эот применением бубна при устранении глюка, возникшего после смены обоев.
Riply (2007-06-20 06:26:00) [6]> [11] Джо © (20.06.07 05:59)
А самому не догадаться ? :)
По моему все очевидно. :)
Джо (2007-06-20 05:59:00) [7]2 AlexanderMS ©
Ну, вот, пожалуйста, объясните, зачем это нужно?
Rial (2007-06-20 01:59:00) [8]> [8] Плохиш © (20.06.07 01:27)
> Да не переведутся любители изобретать велосипеды с квадратными
> колёсами. Аминь...
А еще можно сохранять настройки в заголовке mp3 файла
или в загрузочном секторе диска...
Германн (2007-06-20 01:35:00) [9]
> Плохиш © (20.06.07 01:27) [8]
>
> Да не переведутся любители изобретать велосипеды с квадратными
> колёсами. Аминь...
>
Переведутся. Виста (не к ночи будь упомянуто это ненавистное для меня имя!) их всех вырвет с корнем :)
Плохиш (2007-06-20 01:27:00) [10]Да не переведутся любители изобретать велосипеды с квадратными колёсами. Аминь...
Rial (2007-06-20 00:49:00) [11]А еще можно вот так сделать:
Type
TOptions = record //тут все настройки
...
end;
TMyRec = record
Flag : Array[0 .. $10 - 1] of Byte;
Options : TOptions;
end;
Const
MyRec : TMyRec =
(Flag : (...); - рандомный набор байт
Options : (..) - настройки
);
Теперь в программе можно просто читать настройки из константы.
А при закрытии запускать еще один процесс, который будет
находить уникальную последовательность байт, а сразу за ней
перезаписывать данные в нашу константу.
П.С. но не стоит этим увлекаться, не всегда тут все так просто. %)
Desdechado (2007-06-19 21:32:00) [12]> сохранение настроек программы в её exe-файле
Дурь, имхо.
Из папок без возможности записи не запустится (тем паче с CD), да и антивирусы визжать будут.
oxffff (2007-06-19 20:48:00) [13]Либо дописываешь в существующую секцию согласно FileAlignment из IMAGE_OPTIONAL_HEADER, если конечно хватит.
oxffff (2007-06-19 20:39:00) [14]
> Объясните, пожалуйста, как правильно сделать.
Производишь разбор PE файла.
Добавляешь секцию необходимого размера, и производишь запись в нее.
Anatoly Podgoretsky (2007-06-19 19:55:00) [15]> AlexanderMS (19.06.2007 19:21:00) [0]
Из другой программы.
TUser (2007-06-19 19:30:00) [16]В ресурсы. См. UpdateResource. Запускаешь из себя вспомогатльную прорграмму, которая ждет завершения твоей проги и обновляет ресуры основного экзешника.
Kolan (2007-06-19 19:24:00) [17]По сабжу поиши по форуму, с месяу назад было.
По нормальному ненадо так делать, используй отдельный файл(.ini, .xml)