Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Вставить программу внутрь EXE файла

Delphi , Файловая система , Ресурсы

Вставить программу внутрь EXE файла

ДОРОГОЙ МОЙ МУЖ, Отправляю тебе это письмо по электронной почте, чтобы быть уверенной, что ты его прочтешь. Думаю, ты простишь мне эту небольшую хитрость, но просто я хотела держать тебя в курсе событий за два года, прошедших с того момента, как компьютер вошел в наш дом. С детьми все хорошо. Пете в прошлом месяце исполнилось 8 лет. Учится он хорошо, все считают его красивым и общительным мальчиком. У него, несомненно, есть художественные способности. На прошлой неделе он в школе на уроке рисования изобразил всю семью. У него очень хорошо получились все лица, а особенно реалистично - твой затылок. Ты должен гордиться своим сыном. Леночке в сентябре исполнилось три годика. Она очень похожа на тебя, каким ты был в ее возрасте. Леночка - очень умная девочка. Она даже помнит, что ты провел с нами весь вечер ее дня рождения. Она его с радостью вспоминает, хотя в тот день шел дождь, а ближе к вечеру отключили свет. Со мной тоже все в порядке. В прошлом году я перекрасилась в блондинку и сейчас я думаю, что этот цвет волос мне очень даже идет. Коля (я имею в виду Николая Ивановича - менеджера по персоналу) стал очень интересоваться моей карьерой. А потом он стал моим очень близким другом. Я поняла, что заниматься домашними делами не так уж и сложно. Сначала, когда я подметала пол веником, ты чихал от пыли, но сейчас я делаю это пылесосом, который тебе совершенно не мешает. В доме теперь чистота и уют. Прошлой весной мы переклеили обои, за исключением той части комнаты, где ты поставил свой компьютер, там мы не стали обои переклеивать (не хотели тебе мешать). На этом я заканчиваю письмо, так как мне пора идти: Коля, то есть Николай Иванович, пригласил всех нас на горнолыжный курорт, и мне нужно собирать чемоданы. На время нашего отъезда я наняла домработницу. Она будет готовить тебе кофе и приносить тебе еду прямо за компьютер. Думаю, что вы хорошо проведете время с компьютером, пока мы будем отсутствовать. Петенька, Леночка и я будем думать о тебе. Постарайся и ты подумать о нас, хотя бы во время перезагрузки компьютера.
Обнимаю. Твоя Маша.

1. Пишем в блокноте RC-файл, куда прописываем все нужные нам программы, например:

ARJ EXEFILE C:\ARHIVERS\ARJ.EXE

2. Компилируем его в ресурс при помощи Brcc32.exe. Получаем RES- файл.

3. Далее в тексте нашей программы:


implementation
{$R *.DFM}
{$R test.res} //Это наш RES-файл

// Процедура для извлечения ресурса в указанный файл
procedure ExtractRes(ResType, ResName, ResNewName : String);
var
  Res : TResourceStream;
begin
  Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
  Res.SavetoFile(ResNewName);
  Res.Free;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 // Записывает в текущую папку arj.exe
 ExtractRes('EXEFILE', 'ARJ', 'ARJ.EXE');
end;

Here's the translation of the content into Russian:

Задача заключается в вставке программы в файл EXE с помощью Delphi и инструментом Resource Compiler (RC).

Вот код, который я предоставил:

implementation

{$R  *.DFM}
{$R test.res} // Это наш RES-файл

// Процедура для извлечения ресурса в указанный файл
procedure ExtractRes(ResType, ResName, ResNewName: String);
var
  Res: TResourceStream;
begin
  Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
  Res.SaveToFile(ResNewName);
  Res.Free;
end;

// Событийный обработчик для кнопки BitBtn1Click
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   // Записывает arj.exe в текущий каталог
  ExtractRes('EXEFILE', 'ARJ', 'ARJ.EXE');
end;

Этот код определяет два процедура: 1. ExtractRes: принимает три строковых параметра (ResType, ResName и ResNewName) и извлекает ресурс из файла EXE в новый файл. 2. BitBtn1Click: является событийным обработчиком для клика кнопки, который вызывает ExtractRes с конкретными аргументами для записи arj.exe в текущий каталог.

Чтобы скомпилировать этот код в файл EXE, вам нужно выполнить следующие шаги: 1. Напишите файл RC (test.rc) с необходимыми ресурсами:

ARJ EXEFILE C:\ARHIVERS\ARJ.EXE
  1. Скомпилируйте файл RC с помощью инструмента Resource Compiler (RC) (brcc32.exe):
brcc32 test.rc > test.res
  1. Создайте новый проект Delphi и вставьте код в него.
  2. Скомпилируйте проект Delphi, чтобы создать файл EXE.

Результатом будет файл EXE, содержащий извлеченный ресурс (arj.exe) в его разделе ресурсов.

Для вставки программы в файл EXE вам нужно модифицировать процедуру ExtractRes, чтобы записать файл executable непосредственно в раздел ресурсов файла EXE. Это требует более глубокого понимания инструмента Resource Compiler и его работы.

Альтернативное решение: Вместо записи всего файла arj.exe как ресурс, вы можете использовать built-in поддержку Delphi для вставки файлов в файл EXE. Вы можете добавить следующую строку в файл .dpr проекта:

program MyProgram;
uses ...
{$R*.DFM}
...
  ResourceIncludes := ['C:\ARHIVERS\ARJ.EXE'];

Это будет вставлять файл arj.exe в файл EXE. Обратите внимание, что это метод имеет ограничения, такие как не позволяющий изменять содержимое вставленного файла.

Если у вас есть какие-либо дополнительные вопросы или вам нужна более подробная информация по этому теме, пожалуйста, не стесняйтесь обращаться!

В статье описывается способ вставки программы внутрь EXE файла, а также пример кода на языке Pascal для извлечения ресурсов в указанный файл.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Ресурсы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-27 01:13:49/0.0039570331573486/0