Заметки в exe-файле.

Дальнейшее развитие метода, описанного в статье "Окольцовывание программ".

Как говорится, зачем изобретать велосипед, если он уже изобретён? Нужно лишь оснастить его нужными нам "свистелками и перделками". :)

Кроме информации окольцовавания можно добавлять произовольную информацию, например заметки и комментарии пользователей о программе. :)

Функции работы с ini-файлами прекрасно работают, даже если в ini-файл напихать "левый" мусор. (В данном случае "мусором" будет сам код exe-файла). Таким образом, можно использовать всю мощь отработанного и отлаженного (и придуманного до нас) механизма работы с ini-файлами.

В конец exe-файла можно дописать всё что угодно, и он будет работать

Хотя Windows и не дает изменять запущенный exe-файл, он позволяет его скопировать и переименовать.

Чтение самого себя никаких проблем нам не создает - открываем свой exe-файл как ini и читаем.

Алгоритм записи такой же как и в случае "Окольцовывания файлов".
1) переименовываем свой файл в ExeFileName.exe.old
2) копируем свой файл в FileName.exe
3) пишем всё что хотим в FileName.exe как в ini-файл.
4) перед выходом из программы запускаем новую копию с ключом "/del ExeFileName.exe.old" чтобы удалить старый файл.
5) новая копия, будучи запущена с ключом /del удаляет ExeFileName.exe.old и завершает свою работу

Пример реализации на Borland Delphi 5 + библиотека KOL (для уменьшения размера).

Для удобства использования функции по "созданию заметок в exe-файле" вынесены в отдельный модуль: ExeFileNotes.pas

Особенности реализации: для корректной работы после компиляции к exe-файлу нужно добавить символ перевода строки (иначе первая запись в exe-файл сделает его неработоспособным).

Проще всего это сделать командой:

copy Example.exe+blank.txt

где blank.txt - текстовый файл, содержащий перевод строки.

скачать пример

комментарии


(A) Siliks, декабрь 2010. ICQ:0x426D98C E-Mail: siliks(собака)yandex.ru