Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
ErikBedny
0 / 0 / 0
Регистрация: 27.09.2017
Сообщений: 2
1

Exe который создает exe

27.09.2017, 21:41. Просмотров 807. Ответов 4

Доброго времени суток! Хочу узнать возможно ли сделать так чтобы при исполнении одного exe файла скомпилированного на паскаль, он создавал другой exe.
Например: Я открываю "C:\Выбор.exe", он создаёт 2 файла "Синий.exe" и "Красный.exe" в директорию "C:\Папка с выбором";
При открытии одного из файлов изменяется допустим файл "Результат.log". По сути не обязательно создался exe или как-то распаковался.
Итог: Можно ли из одного exe получить ещё 2?
P.S. Я знаю что в этом нет практического смысла, зато весело))
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2017, 21:41
Ответы с готовыми решениями:

Исходник из exe
Возможно ли имея екзешник проги на паскале просмотреть ее код?

из exe в pas
имеется готовая програмка ! напишите плиз код к ней !! спасибо !

Нет rc.exe
в ABC.Net уже давно нет rc.exe Есть ли другие варианты?

Последовательный запуск *.exe
Ребят а можно ли сделать так, чтобы проги запускались друг за другом, но только...

Компиляция в exe в SchoolPack-е
Как в scoolpack компилировать в exe а не в pas?

4
Zwelenewskiy
119 / 119 / 105
Регистрация: 09.01.2017
Сообщений: 1,237
Завершенные тесты: 1
27.09.2017, 22:47 2
Почему нет практического смысла? А инсталлятор? По сути же exe-шник создает exe-шник. Так что мне бы тоже было интересно узнать что-то об этом
0
JuriiMW
1995 / 1080 / 1573
Регистрация: 10.12.2014
Сообщений: 4,064
28.09.2017, 09:03 3
Конечно можно!
К примеру, так:

1) Создаём свою программу и компилируем её с именем circle
Pascal
1
2
3
4
uses GraphABC;
begin
  Circle(Window.Center.X,Window.Center.Y,Min(Window.Center.X,Window.Center.Y)-10);
end.
2) Создаём программу, которая из первой создаёт массив:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
begin
  var f : file of Byte;
  Reset(f, 'circle.exe');
  var t : String := '';
  var s : String := '(';
  var b : Byte;
  while Not EOF(f) do
    begin
      Read(f, b);
      s += b.ToString + ',';
      if s.Length > 100 then
        begin
          t += s + NewLine; s := '';
        end;
    end;
  if s.Length > 0 then t += s;
  t += ');';
  Close(f);
  WriteAllText('myArray', t);
  WriteLn('Готово!');
end.
3) Ну и создаём последнюю программу, в которую вместо многоточия добавляем содержимое текстового файла myArray:
Pascal
1
2
3
4
5
6
7
8
9
const a : array of byte =
. . . . . . . . . . . . . .
begin
  var f : File of Byte;
  Rewrite(f, 'circle2.exe');
  foreach var b in a do Write(f, b);
  Close(f);
  Exec('circle2.exe');
end.
4) Удаляем запятую перед закрывающей массив скобкой и запускаем программу.

Вот, собственно, и всё… Любуемся на запущенное приложение.

Ну, конечно, можно реализовать или подключить какой-нибудь алгоритм сжатия. Но это уже на самостоятельную работу ;–)
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26340 / 17671 / 6998
Регистрация: 22.10.2011
Сообщений: 31,094
Записей в блоге: 6
28.09.2017, 11:14 4
Лучший ответ Сообщение было отмечено ErikBedny как решение

Решение

Pascal
1
2
3
4
5
6
7
8
{$resource 'circle.exe'}
 
uses System.IO;
begin
  var fn := ExtractFileDir(ParamStr(0)) + '\circle.exe'; 
  var fs := new System.IO.FileStream(fn, System.IO.FileMode.Create, System.IO.FileAccess.Write);
  GetResourceStream('circle.exe').CopyTo(fs);
end.
, безо всяких массивов.
1
ErikBedny
0 / 0 / 0
Регистрация: 27.09.2017
Сообщений: 2
28.09.2017, 13:46  [ТС] 5
JuriiMW, volvo, огромное спасибо! Вариант JuriiMW интересен, но вариант volvo гораздо удобней))
Удачного всем дня!
0
28.09.2017, 13:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.09.2017, 13:46

Есть ли возможность в .exe?
Здравствуйте, я тут накодил калькулятор.Есть ли возможность чтобы он запускался...

Хранение данных в exe-файле
Можно ли хранить данные переменных, массивов, зпаписей хранить непосредственно...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru