Возможно ли встроить и запустить exe-файл в исполняемом приложении Delphi?
Ресурсные файлы (.RES) принимают любые двоичные файлы, но если это исполняемый файл, как я могу его запустить?
4 ответа
Вы должны извлечь его как файл на диск и выполнить его.
Хотя вам не нужно извлекать его на диск, как говорит Космин Прунд в комментарии, в противном случае это требует большой кропотливой работы.
Взгляните на этот блок выполнения памяти. Он позволяет вам запускать exe из памяти, не выгружая его на диск.
Да, это возможно. Есть библиотека Delphi, которая делает это где-то в Интернете, но я не могу вспомнить, как она называется. Это позволяет вам выполнять обычный exe-файл независимо от того, где он находится в памяти. Таким образом, вы можете загрузить его в поток или просто встроить в ресурс.
Я понимаю, что мой ответ немного удручает, так как я не помню название библиотеки, но, по крайней мере, теперь вы знаете, что это можно сделать. Если вы поищите в Google "выполнить PE exe из памяти" и "Delphi", то я уверен, что вы найдете его.
Возможно, вы захотите взглянуть на XBundler Ореана: http://www.oreans.com/xbundler.php
Я использую их лицензионный продукт (WinLicense) и был очень доволен этим продуктом, его поддержкой, отзывчивостью и обновлениями.
На самом деле, я собираюсь купить XBundler, чтобы я мог отправить dll, надежно встроенный в мой exe.
Том