Возможно ли встроить и запустить exe-файл в исполняемом приложении Delphi?

Ресурсные файлы (.RES) принимают любые двоичные файлы, но если это исполняемый файл, как я могу его запустить?

4 ответа

Вы должны извлечь его как файл на диск и выполнить его.

Хотя вам не нужно извлекать его на диск, как говорит Космин Прунд в комментарии, в противном случае это требует большой кропотливой работы.

http://sites.google.com/site/delphibasics/home/delphibasicssnippets/memoryexecutionunit-winxpwinvistawin7

Взгляните на этот блок выполнения памяти. Он позволяет вам запускать exe из памяти, не выгружая его на диск.

Да, это возможно. Есть библиотека Delphi, которая делает это где-то в Интернете, но я не могу вспомнить, как она называется. Это позволяет вам выполнять обычный exe-файл независимо от того, где он находится в памяти. Таким образом, вы можете загрузить его в поток или просто встроить в ресурс.

Я понимаю, что мой ответ немного удручает, так как я не помню название библиотеки, но, по крайней мере, теперь вы знаете, что это можно сделать. Если вы поищите в Google "выполнить PE exe из памяти" и "Delphi", то я уверен, что вы найдете его.

Возможно, вы захотите взглянуть на XBundler Ореана: http://www.oreans.com/xbundler.php

Я использую их лицензионный продукт (WinLicense) и был очень доволен этим продуктом, его поддержкой, отзывчивостью и обновлениями.

На самом деле, я собираюсь купить XBundler, чтобы я мог отправить dll, надежно встроенный в мой exe.

Том

Другие вопросы по тегам