discipuli
@discipuli
Студент

Как собрать несколько программ в один исполняемый stanalone файл?

Есть 2 программы просто в архивах-запустил бинарник и пользуйся

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

Есть pyqt5 программа которая всё это умеет дёргать.

И ряд скриптов ещё.

Нужно собрать это всё в один бинарник и скинуть человеку который по умолчанию не умеет использовать компьютер(точнее умеет только сёрфить в интернете), на компе винда.

Прога делается для студентов для семестрового курса, пользователей мака у нас мало, а линуксоиды пусть долбятся сами, но решение хочется всё таки универсальное, хоть целевая платформа винда.
  • Вопрос задан
  • 300 просмотров
Пригласить эксперта
Ответы на вопрос 2
@lizlizchuu
на delphi 6 написать можно программу - имплантировать прямо в экзешник в виде ресурсов все нужные файлы, и при запуске:
1. создаём в temp папку - если создана - то проверяем хэши файлов.
2. запускаем всё что надо в правильном порядке передавая кому нужно параметры командной строки, и, если необходимо, модифицируя директорию исполнения.
смотреть в сторону FindFirstFileA/FindNextFileA/FindClose/CreateFile/ReadFile/CloseHandle - для проверки существования и содержимого файлов если они уже есть, FindResource/LoadResource/LockResoruce/CreateFile/SetEndOfFile/WriteFile/CloseHandle - для извлечения ресурсов и записи их в файлы, CreateProcessA - для запуска того что надо, ну и так далее. Ну и найдите в интернете какую-нибудь библиотеку для вычисления нормальных хешей, например sha - их должно быть достаточно. Добавить ресурс можно при помощи компиляции rc файла со строкой myresourcename RCDATA "filename.exe" программой brcc32.exe - она в папке bin рядом с delphi лежит.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Нужно собрать это всё в один бинарник и скинуть человеку который по умолчанию не умеет использовать компьютер(точнее умеет только сёрфить в интернете), на компе винда.


Может я чего-то упускаю. Но я не понимаю каким образом это поможет человеку? Он как не умел запускать так и не умеет. Как он будет пользоваться консольной прогой в данном кейсе?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы