Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.15;
Скачать: CL | DM;

Вниз

Сохранение настроек программы в её исполняемом файле.   Найти похожие ветки 

 
AlexanderMS ©   (2007-06-19 19:21) [0]

Хотелось бы осуществить сохранение настроек программы в её exe-файле. Как можно и как лучше: через сохранение данных в ресурсы либо непосредственной записью в exe-файл без использования ресурсов? Посоветуйте, пожалуйста. Просто я не нашёл примера записи ресурса в файл (искал плохо, быть может: везде - чтение уже присоединённого). Во втором случае я нашёл пример, где настройки пишутся в конец исполняемого файла. Это правильно? Ошибок не будет? Объясните, пожалуйста, как правильно сделать.


 
Kolan ©   (2007-06-19 19:24) [1]

По сабжу поиши по форуму, с месяу назад было.

По нормальному — ненадо так делать, используй отдельный файл(.ini, .xml)&#133


 
TUser ©   (2007-06-19 19:30) [2]

В ресурсы. См. UpdateResource. Запускаешь из себя вспомогатльную прорграмму, которая ждет завершения твоей проги и обновляет ресуры основного экзешника.


 
Anatoly Podgoretsky ©   (2007-06-19 19:55) [3]

> AlexanderMS  (19.06.2007 19:21:00)  [0]

Из другой программы.


 
oxffff ©   (2007-06-19 20:39) [4]


> Объясните, пожалуйста, как правильно сделать.


Производишь разбор PE файла.
Добавляешь секцию необходимого размера, и производишь запись в нее.


 
oxffff ©   (2007-06-19 20:48) [5]

Либо дописываешь в существующую секцию согласно FileAlignment из  IMAGE_OPTIONAL_HEADER, если конечно хватит.


 
Desdechado ©   (2007-06-19 21:32) [6]

> сохранение настроек программы в её exe-файле
Дурь, имхо.
Из папок без возможности записи не запустится (тем паче с CD), да и антивирусы визжать будут.


 
Rial ©   (2007-06-20 00:49) [7]

А еще можно вот так сделать:

Type
    TOptions = record //тут все настройки
     ...
    end;

    TMyRec = record
     Flag    : Array[0 .. $10 - 1] of Byte;
     Options : TOptions;
    end;

Const
     MyRec : TMyRec =
     (Flag : (...); - рандомный набор байт
      Options : (..) - настройки
      );

Теперь в программе можно просто читать настройки из константы.
А при закрытии запускать еще один процесс, который будет
находить уникальную последовательность байт, а сразу за ней
перезаписывать данные в нашу константу.

П.С. но не стоит этим увлекаться, не всегда тут все так просто. %)


 
Плохиш ©   (2007-06-20 01:27) [8]

Да не переведутся любители изобретать велосипеды с квадратными колёсами. Аминь...


 
Германн ©   (2007-06-20 01:35) [9]


> Плохиш ©   (20.06.07 01:27) [8]
>
> Да не переведутся любители изобретать велосипеды с квадратными
> колёсами. Аминь...
>

Переведутся. Виста (не к ночи будь упомянуто это ненавистное для меня имя!) их всех вырвет с корнем :)


 
Rial ©   (2007-06-20 01:59) [10]

> [8] Плохиш ©   (20.06.07 01:27)
> Да не переведутся любители изобретать велосипеды с квадратными
> колёсами. Аминь...

А еще можно сохранять настройки в заголовке mp3 файла
или в загрузочном секторе диска...


 
Джо ©   (2007-06-20 05:59) [11]

2 AlexanderMS ©
Ну, вот, пожалуйста, объясните, зачем это нужно?


 
Riply ©   (2007-06-20 06:26) [12]

> [11] Джо ©   (20.06.07 05:59)
А самому не догадаться ? :)
По моему все очевидно. :)


 
TUser ©   (2007-06-20 07:39) [13]

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


 
Dimaxx ©   (2007-06-20 10:10) [14]

offtop:


> $10 - 1

Никогда не понимал людей пишущих такой изврат... Тяжело написать 15? :)


 
Rial ©   (2007-06-20 10:27) [15]

> [14] Dimaxx ©   (20.06.07 10:10)
> > $10 - 1
> Никогда не понимал людей пишущих такой изврат... Тяжело
> написать 15? :)

В конечном счете код все равно будет сгенерирован идентичный,
но только $10 - 1 сразу намекает на размер массива.
И проще модифицировать в случае, если вместо числа
там будет константа.
Да и вид шестнадцатеричный как- то привычнее.

П.С. видимо, утро не задалось ? :)


 
Dimaxx ©   (2007-06-20 14:35) [16]


> но только $10 - 1 сразу намекает на размер массива

Ыы, вот как раз 0..15 сразу намекает на размер массива, а $10-1 как-то не особо.


 
Сергей М. ©   (2007-06-20 14:53) [17]


> AlexanderMS ©   (19.06.07 19:21)


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



Страницы: 1 вся ветка

Текущий архив: 2007.07.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
2-1182416406
_Asph
2007-06-21 13:00
2007.07.15
onclick в TWinControl


15-1181691118
programmerts
2007-06-13 03:31
2007.07.15
Глюк с Delphi 6.


2-1182073927
..::KraN::..
2007-06-17 13:52
2007.07.15
String to ANSI


15-1182093063
AlexanderMS
2007-06-17 19:11
2007.07.15
MIDletPascal и JAD-файлы.


2-1182156046
a.s.popow
2007-06-18 12:40
2007.07.15
таблица Paradox