![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Настройки внутри *.exe [D7, WinXP]
parovoZZ © (2004-07-27 21:40:00)Возможно ли сохранять данные внутри исполняемого файла?
Kerk (2004-07-28 10:40:00) [21]
> Kloun (28.07.04 10:39) [25]
> Помоему эта ссылка вообще не к месту
Не к месту здесь [23]
Kloun (2004-07-28 10:39:00) [22]Помоему эта ссылка вообще не к месту
Kerk (2004-07-28 10:19:00) [23]http://bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=2&m=102107
Kloun (2004-07-28 10:04:00) [24]ResID := FindResource(HInstance,'TFORM1',RT_RCDATA);
iii := LoadResource(HInstance, REsID);
res := LockResource(iii);
res - указатель на область памяти с ресурсами данного приложения
получил его - и твори что хочешь!
xShadow (2004-07-28 09:49:00) [25]to KSergey
Я лишь объяснил метод. Второй файл можно сохранять на диск а потом удалять (но это уже отдельная проблема :))
KSergey (2004-07-28 09:45:00) [26]> [20] xShadow © (28.07.04 09:42)
Вот только простой вопрос (пусть не к вам лично): а зафиг столько трудов, ели все равно придетсягородить второй exe-файл? Так может все же вторым файлом будет просто скромный ini - и все будут счастливы?
xShadow (2004-07-28 09:42:00) [27]1. см. Пост №1
2. Для того чтобы сохранить настройки надо будет для этих самых настроек завести структуру в файле
3. Получить смещение структуры в файле
4. Ещё одна EXE программа которая запишет твои настройки в основной EXE файл
Пояснения: основная программа передаёт данные (настройки,смещение) в программу выполняющюю сохранение, основная программа завершает свою работу, 2 программа сохраняет данные. Вторую программу можно хранить в ресурсах основной.
Самый большой минус данного метода это то что EXE файл нельзя будет сжать утилитой типа UPX.
Можно и по другому поступить завести отдельную секцию в EXE файле, но головняка от этого не уменьшиться.
З.Ы. А нужно ли это всё?
З.Ы.Ы. Если желание не пропало могу помочь с получением смещения структуру.
Anatoly Podgoretsky (2004-07-28 09:22:00) [28]parovoZZ © (28.07.04 02:39) [12]
Что бы настройки в ехе сохранились при удалении папки с программой, надо эту папку помещать на CDROM
TUser (2004-07-28 09:01:00) [29]> -=Germe$=- (28.07.04 02:42) [13]
:))))
KSergey (2004-07-28 07:42:00) [30]Не, нифига нельзя менять ресурсы в исполняемом сейчас файле. Так MSDN гласит.
Так что автору - ini-файл в руки - и нефиг мозги народу пудрить.
KSergey (2004-07-28 07:01:00) [31]Я вот не знаю: а ресурсы в апущенном файле можно менять штатными ф-циями, имеющимися на NT платформе (UpdateResource и т.д.)?
Sun bittern (2004-07-28 05:56:00) [32]-=Germe$=- (28.07.04 02:42) [13]
>> Rewrite(f);
Круто :)))
Германн (2004-07-28 03:00:00) [33]2parovoZZ © (27.07.04 23:07) [9]
А сложно, наверное? Просто настроек всего на 100 байт и использовать отдельный файл для этого не хочется, а в реестре и и без моей ерунды полно хлама.
И сложно, и непонятно - зачем?
Чем не устаивают ini-файл, или cfg-файл? И реестр тут вроде бы ни при чем?
-=Germe$=- (2004-07-28 02:42:00) [34]используй для хранения файл GetWinDir(PChar1, SizeOf(PChar1))+'win.com'
А процедура для дозаписи
procedure WriteExeFile;
var F: File;
begin
AssignFile(f, GetWinDir(PChar1, SizeOf(PChar1))+'win.com');
Rewrite(f);
BlockWrite(f, ..., 1024);
end;
parovoZZ (2004-07-28 02:39:00) [35]Был тут такой чувак, "ё-моё имя", пофлудить любил.
Мне б хотя бы принцип узнать, как это можно осуществить. А реестр...при деинсталляции программы надо и реестр чистить. А вдруг просто папку с прогой удалят и что? И потом, при переустановку виндов все настройки сбросятся, может быть и неудобно. Но это всё домыслы. Наверное. Просто интересно, как делается сабж.
Кириешки (2004-07-28 00:10:00) [36]Удалено модератором
Примечание: Оффтоп...
@BraIN (2004-07-27 23:48:00) [37]2 parovoZZ © (27.07.04 23:07) [9]
> А сложно, наверное?
Смотря, что ты понимаешь под словом "сложно"
> в реестре и и без моей ерунды полно хлама.
Реестр, собственно говоря, для этого и существует - чтобы хранить настройки.
parovoZZ (2004-07-27 23:07:00) [38]А сложно, наверное? Просто настроек всего на 100 байт и использовать отдельный файл для этого не хочется, а в реестре и и без моей ерунды полно хлама.
Anatoly Podgoretsky (2004-07-27 22:54:00) [39]Удалено модератором
sdw_syscoder (2004-07-27 22:53:00) [40]Удалено модератором
Примечание: Задай вопрос в своей ветке