Як вставити файл узапущений додаток

Як вставити файл у запущену програму? Потрібно щоб файл вписувався в тіло моєї програми. І після закриття лишився в ній. Заздалегідь дякую.

Що означає вставити файл? Куди вставити? ЗИ. Запущений файл не редагується

І як написати цю програму?

З першої програми запускаєте програму 2. Програма 2 очікує завершення програми 1. Програма 2 записує у програму 1 дані. Програма 2 завершується.

PC Maniac Це зрозуміло, але мені тоді потрібен текст другого додатка Може хто знає?

Цікаво. а хто знає як взагалі WinAmp переписує ID3 тег під час програвання файлу? Дуже цікаво стало.

Як як? Він його відкрив, він у нього пише.

Хто жінку годує, той її танцює? =)))

А навіщо тобі це треба? Мабутьвірусзлобний пишеш. ;-)

Вибачте ідіота, але куди в Exe можна писати дані в сенсі цілий файл?

Звичайно буде куди він подінеться?

Справді запускається. А пам'ятатись у DOS там якісь контрольні суми були. Щас лайна набрав наприкінці exe і запустився. Прикол.

А чи просто файл даних зашифрувати? І з паролем буде.

Гей програмери є компонент, який дозволяє зберігати дані в ехе файл.

vixic (25.06.02 07:26)

> ей програмери є компонент, який дозволяє зберігати > дані в ехе файл.

Якщо згоден обмежитися роботою під WinNt/2k, то пошукай UpdateResource у Win32SDK

>Наприклад, до кінця файлу дописати.

Називається аттач. Неважко реалізувати через потоки.

Слухайте, я так і не отримав відповіді як мені це зробити! Мені потрібний вихідний код який приписував би до exe файлу інший файл. У delphi є така фігня якнаприклад, приписує графічний файл до проекту.

> Мені потрібен вихідний код який приписував би до exe файлу інший файл.

І ще цікаво – а навіщо ж такі навороти? Чому не надсилати файли НОРМАЛЬНИМИ способами? Хоч із паролем, хоч без нього.

Так що не пудріть людям мізки, юний трояновірусотворець.

> У delphi є така фігня як наприклад приписує > графічний файл до проекту.

Угу, є. Ресурси це називається. Одна лише деталь – файл приписується до ще НЕ ЗАПУЩЕНОГО проекту.

юзайте. там ще багато чого цікавого.

D"Bug (25.06.02 11:47) Якщо згоден обмежитися роботою під WinNt/2k, то пошукай UpdateResource у Win32SDK

Це не зовсім так. BeginUpdateResourceW, UpdateResourceW, EndUpdateResourceW можна використовувати і в Win95,98,Me за умови, що встановлена ​​підтримка Unicode (потрібно завантажити з www.microsoft.com unicows.exe та встановити) (див. MSDN)

Та без unicode ніяк, так?

1) До exe файлу можна додати все що завгодно, для цього у PE файлу є спец-я RCDATA. Робимо слід-е.

Допустимо потрібно зробити дописати до exe файл файл з назвою F1.exe. Створюємо RC файл з наступним рядком:

MYFILE RCDATA F1.exe

зберігаємо у файлі Res.rc і компілюємо brcc32.exe Res.rc

2) У вихіднику 1-го додатку приєднуємо отриманий ресурс

3) Отримуємо доступ до ресурсу:

Var RSRC: HRSRC; RES : THandle; P: Pointer; . RSRC:=FindResource(HInstance, "GAMEDATA", RT_RCDATA); RES:=LoadResource(HInstance, RSRC); P:=LockResource(RES); . У P покажчик на дані, далі робимо що хочемо.

4) Це нешкідливий спосіб, а ось якщо потрібно писати віруси, то потрібно вклинюватися в чужий процес. Про це написано уРіхтера, слава богу, що на C++ і досить складно, інакше нас би захлеснула хвиля вірусів :)

Sorry, правильно : RSRC:=FindResource(HInstance, "MYFILE", RT_RCDATA);

Вихідне питання: Як вставити файл узапущенедодаток?

У мене в принципі схожа ситуація: Є програма, є файли які повинні обов'язково! При роботі програми - це файли налаштувань, причому стандарти нечасто, але змінюються, а при встановленні у клієнта за три-дев'ять земель буває, що якийсь файл забули або поклали не той. Так ось щоб виключити таку ситуацію я запихав файли в Exe а при запуску перевіряв, чи є він у наявності, якщо ні - створював (сам-собі інсталятор). Налаштування виставляю не я і при цьому б хотілося, щоб вони автоматично :( записувалися в exe поверх старих. Але не доля - проблем стало ще більше. Так що поки ручками лінкую. - Це все написано з приводу троянів. Завдання різні бувають і рішення те ж різними бувають, може, не оптимальними, але теж мають право на існування.

Ну дякую прогери-мудреці. А ще одне таке запитання? А як його потім можна витягнути із exe файлу. Наприклад, у мене є назви файлів вписаних в exe файлі (все відбувається при запущеному exe) я вибираю певне ім'я у мене має вискочити вікно типу куди його зберегти. Пліз підкажіть.

> Serg Gurin (19.09.02 1:42) > Завдання різні бувають і рішення те ж різними бувають

Це вірно. Але, я сподіваюся, ваші файли разом з Exe Ви не розсилаєте поштою?

А тут вийшла зворотна ситуація – не задача говорить про рішення, а рішення говорить про завдання. Ось у чому справа.

1. resourcestring або LoadStr - для рядків. 2. TResourceStream - для будь-яких ресурсів.