|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Склейка exe файла с другими файлами...
Помогите создать программу для склейки exe файла с другими файламив один файл.
Кто сможет скиньте пожалуйста исходник |
#2
|
||||
|
||||
Пожалуйста
Код:
function AttachToFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean; var aStream: TFileStream; iSize: Integer; begin Result := False; if not FileExists(AFileName) then Exit; try aStream := TFileStream.Create(AFileName, fmOpenWrite or fmShareDenyWrite); MemoryStream.Seek(0, soFromBeginning); aStream.Seek(0, soFromEnd); aStream.CopyFrom(MemoryStream, 0); iSize := MemoryStream.Size + SizeOf(Integer); aStream.Write(iSize, SizeOf(iSize)); finally aStream.Free; end; Result := True; end; function LoadFromFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean; var aStream: TFileStream; iSize: Integer; begin Result := False; if not FileExists(AFileName) then Exit; try aStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite); aStream.Seek(-SizeOf(Integer), soFromEnd); aStream.Read(iSize, SizeOf(iSize)); if iSize > aStream.Size then begin aStream.Free; Exit; end; aStream.Seek(-iSize, soFromEnd); MemoryStream.SetSize(iSize - SizeOf(Integer)); MemoryStream.CopyFrom(aStream, iSize - SizeOf(iSize)); MemoryStream.Seek(0, soFromBeginning); finally aStream.Free; end; Result := True; end; Это функции сохранения и загрузки в/из ЕХЕ файла. Сохраняет текст. То бишь функции сохраняют текст в ЕХЕ файл, после этого текст можно оттуда прочитать соответствующей функцией. Если надо в ЕХЕ сохранить другие файлы просто читаешь их как текст (F: TextFile) и сохраняешь в ЕХЕ. ЗЫ если надо сохранять ЕХЕ в ЕХЕ, то это уже джойнер. Исходников джойнеров довольно много, поищите в гугле, точно найдете. Помогаю за Спасибо |
#3
|
||||
|
||||
а EXE-шник после такого жестокого обращения запустится? :-) а то там вроде как лишний байт и все, это уже не приложение win32))
jmp $ ; Happy End! The Cake Is A Lie. |
#4
|
|||
|
|||
Пожалуйста можеш закинуть исходник
В архив и закинуть на сайт пожалуйста Последний раз редактировалось taiker, 26.11.2010 в 21:06. |
#5
|
||||
|
||||
Нет, ЕХЕ будет спокойно запускаться, т.к. дописываем текст после программного кода.
Сюда выложить не могу, т.к. исходник больше, чем можно загружать на форум. Я лучше опишу тут как использовать эти функции если кому надо: Код:
// SAVE to file: var aStream: TMemoryStream; begin aStream := TMemoryStream.Create; Memo1.Lines.SaveToStream(aStream); if not FileExists('111.exe') then showmessage('error!!!'); AttachToFile('111.exe', aStream); aStream.Free; Код:
var aStream: TMemoryStream; begin aStream := TMemoryStream.Create; if not FileExists('111.exe') then showmessage('error!!!'); LoadFromFile('111.exe', aStream); Memo1.Lines.LoadFromStream(aStream); aStream.Free; Где "111.ехе" - программа для "опытов". Помогаю за Спасибо |