Як вставити файл узапущений додаток
Як вставити файл у запущену програму? Потрібно щоб файл вписувався в тіло моєї програми. І після закриття лишився в ній. Заздалегідь дякую.
Що означає вставити файл? Куди вставити? ЗИ. Запущений файл не редагується
І як написати цю програму?
З першої програми запускаєте програму 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 - для будь-яких ресурсів.