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

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

Ответы [ 4 ]

12 голосов
/ 22 мая 2011

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

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

5 голосов
/ 23 мая 2011

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

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

1 голос
/ 23 мая 2011

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

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

0 голосов
/ 23 мая 2011

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

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

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

Tom

...