Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Как во время выполнения программы создать EXE файл?   Найти похожие ветки 

 
moor38   (2004-02-15 15:19) [0]

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


 
Digitman ©   (2004-02-15 15:28) [1]


> moor38   (15.02.04 15:19)  


> Как во время выполнения программы создать EXE файл


исп.файл - такой же равноправный файл как и все другие файлы

чтобы создать файл, просто оздай объект TFileStream с FileName = "MyExeFile.EXE" и запиши в него нужную инф-цию методом WriteBuffer() .. всех делов


 
DVM ©   (2004-02-15 15:34) [2]

А о том, какая информация должня быть записана туда в первую очередь, можно узнать почитав про PE формат файлов.


 
Digitman ©   (2004-02-15 15:45) [3]

..а почитав про РЕ-формат и соотнеся все увиденное со своими сегодняшними знаниями на эту тему, ты бросишь эту бредовую затею и воспользуешься готовыми компиляторами/линкерами для генерации PE-файлов в ран-тайм


 
Defunct   (2004-02-15 16:37) [4]

> ..а почитав про РЕ-формат и соотнеся все увиденное со своими сегодняшними знаниями на эту тему, ты бросишь эту бредовую затею и воспользуешься готовыми компиляторами/линкерами для генерации PE-файлов в ран-тайм

А разве только PE относятся к исполнимым файлам? Со своими сегодняшними знаниями он запрсто может создать BAT-файл, который тоже относится к числу исполнимых.


 
Anatoly Podgoretsky ©   (2004-02-15 16:49) [5]

Не относится, это данные для интерпритатора.


 
Anatoly Podgoretsky ©   (2004-02-15 16:50) [6]

Да и никто не просил создавать BAT файл, наоборот формат четко указан, это должно быть именно EXE файл, и поверь, что речь идет не об расширении.


 
Defunct   (2004-02-15 17:00) [7]

Anatoly Podgoretsky ©   (15.02.04 16:49) [5]
> Не относится
Это Вы так скажете Джордейну. Скрипт распознается на уровне командного процессора, так же как и EXE, значит BAT файл тоже относится к числу исполнимых. От том как именно система будет его исполнять: инетерпретировать или загружать с передачей управления, это другой вопрос.

Anatoly Podgoretsky ©   (15.02.04 16:50) [6]
> Да и никто не просил создавать BAT файл, наоборот формат четко указан, это должно быть именно EXE файл, и поверь, что речь идет не об расширении.

С учетом ответов [1], [2], [3] мнение автора об используемом формате может измениться. Причем в теле вопроса формат не указывается:

moor38   (15.02.04 15:19)  
Т.е. работает моя программа и после некоторых условий необходимо создать исполняемый файл со своими задачами.


 
moor38   (2004-02-15 18:31) [8]

Извиняюсь у меня инет пропал.
Да необходимо создать EXE файл.
Или можно сделать по другому, всунуть этот ЕХЕ файл в мою прогу, а потом высунуть, только как это сделать?

Мужики, где можно прочитать про PE формат файлов? И где взять готове компиляторы/линкеры для генерации PE-файлов в ран-тайм?

Поверьте очень нудно для работы.


 
Defunct   (2004-02-15 18:43) [9]

> Или можно сделать по другому, всунуть этот ЕХЕ файл в мою прогу, а потом высунуть, только как это сделать?

Просто вначале допиши готовый экзешник к первому. Можно Append в TotalCommander, можно самостоятельно - BlockWrite(_)/FileWrite(_).

Потом в процессе выполнения открываем собственный экзешник для чтения:

SysUtils.FileOpen(Application.ExeName, _режим_);

_режим_: 0-чтение, 1-запись, 2- чт/зап

Позиционируемся FileSeek(_) на оговоренную позицию (старая длинна EXE файла), читаем FileRead(_). Создаем новый EXEшник CreateFile(_), пишем то, что прочитали в него FileWrite(_), закрываем и запускаем созданный файл.


 
KosilkA ©   (2004-02-15 18:56) [10]


> moor38   (15.02.04 18:31) [8]
> Извиняюсь у меня инет пропал.
> Да необходимо создать EXE файл.
> Или можно сделать по другому, всунуть этот ЕХЕ файл в мою
> прогу, а потом высунуть, только как это сделать?
>
> Мужики, где можно прочитать про PE формат файлов? И где
> взять готове компиляторы/линкеры для генерации PE-файлов
> в ран-тайм?
>
> Поверьте очень нудно для работы.

ну так сразу бы и сказал ))) поищи в инете по словам "добавить,извлечь,ресурс,delphi" и все будет хорошо ...


 
moor38   (2004-02-15 19:07) [11]

Defunct - Спасибо, общая схема понятна, далее попытаюсь разобраться самостоятельно.

KosilkA - да, догадаться было тяжело, спасибо.


 
Alexander666 ©   (2004-02-16 00:51) [12]

Я всегда пользовался таким методом (как и сказал Digitman)

procedure ExtractExe;
var
 Exe: TResourceStream;
begin
 Exe := TResourceStream.Create(hInstance, "MYEXE", RT_RCDATA);
 try
   Exe.SaveToFile("MyExe.exe");
 finally
   Exe.Free;
 end;  
end;  

Мда, тут еще на сайте в одной из статей написано, как сувать ехе в ресурс. Открываешь Блокнот, а дальше:

MYEXE RCDATA
myexe.exe

Сохранил с расширением .rc, а потом уж каким-нить редактором ресурсов откомпилируй. Все просто.

Я еще пытался сделать запись ехе в ресурс другого ехе, но так и не получилось...


 
Alexander666 ©   (2004-02-16 00:52) [13]

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


 
Digitman ©   (2004-02-16 08:08) [14]


> где взять готове компиляторы/линкеры для генерации PE-файлов
> в ран-тайм?


не поверишь, все это у тебя перед носом - в составе Делфи на твоей машине


 
moor38   (2004-02-19 09:52) [15]


> Alexander666 ©   (16.02.04 00:51) [12]
> Я всегда пользовался таким методом (как и сказал Digitman)
>
>
> procedure ExtractExe;
> var
>  Exe: TResourceStream;
> begin
>  Exe := TResourceStream.Create(hInstance, "MYEXE", RT_RCDATA);
>  try
>    Exe.SaveToFile("MyExe.exe");
>  finally
>    Exe.Free;
>  end;  
> end;  


Насколько я понял это сохранить ресурс как ЕХЕ файл, но для начала необходимо всунуть этот ЕХЕ файл в мою прогу, а как?


 
Рамиль ©   (2004-02-20 20:40) [16]


> Alexander666 ©   (16.02.04 00:51) [12]


> MYEXE RCDATA
> myexe.exe
>
> Сохранил с расширением .rc, а потом уж каким-нить редактором
> ресурсов откомпилируй. Все просто.


 
KosilkA ©   (2004-02-21 19:55) [17]


> moor38   (15.02.04 19:07) [11]
> KosilkA - да, догадаться было тяжело, спасибо.

видимо тяжело , потому что если б ты не поленился и набрал в поисковике то о чем я уже говорил , то нашел бы там то что написал тебе
> Alexander666 ©   (16.02.04 00:51) [12]


....
к слову , "как сувать ехе в ресурс" ...как там во всех советах написано ? ... берется блокнот, пишется чтото типа MYEXE RCDATA, потом brcc32.exe и т.д. и т.п.... не слюшайте эти вредные советы! в Дельфи, в меню "Project" есть пункт "Resources" , и там все это делается  парой кликов мышь, что намного проще :-)


 
Max003   (2004-02-21 20:05) [18]

Могу официально заявить, что создать исполняемый файл во время выполнения программы реально, для этого надо всего лишь написать компилятор и текст программы. Могу дать кусок готовой программы. Сейчас. Ловите.


 
Talla2k ©   (2004-02-22 01:52) [19]

to Max003: Что-то не впоймали!


 
moor38   (2004-02-24 23:14) [20]


> Max003   (21.02.04 20:05) [18]
> Могу официально заявить, что создать исполняемый файл во
> время выполнения программы реально, для этого надо всего
> лишь написать компилятор и текст программы. Могу дать кусок
> готовой программы. Сейчас. Ловите.


Если не поленишся скинь мне на мыло moor38@yandex.ru
Буду очень благодарен.


 
moor38   (2004-02-24 23:17) [21]


> Max003   (21.02.04 20:05) [18]
> Могу официально заявить, что создать исполняемый файл во
> время выполнения программы реально, для этого надо всего
> лишь написать компилятор и текст программы. Могу дать кусок
> готовой программы. Сейчас. Ловите.


Если не поленишся скинь мне на мыло moor38@yandex.ru
Буду очень благодарен.


 
DVM ©   (2004-02-24 23:33) [22]


> Могу официально заявить, что создать исполняемый файл во
> время выполнения программы реально

Да никто и не спорит. Делают же люди.

> для этого надо всего лишь написать компилятор

Всего лишь? Тоже официальное заявление. Вы Билл Гейтс?


 
Cash ©   (2004-02-25 12:18) [23]

А такой способ будет ли правильным.
Берем, создаем программу со скриптовым движком, которая читает скрипты из своего ресурса. Создаем основную прогу, кладем в нее (ресурс) скриптовую программу. Во время выполнения основной копируем из ресурса скриптовую прогу и кладем в нее (ресурс) созданный скрипт. Далее скриптовая прга ходит сама по себе.</I >
строго не судить, я с ресурсами недавно :)



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.06 c
1-1081332675
V-Isa
2004-04-07 14:11
2004.04.25
Как узнать ширину и высоту символа в пикселях для определенного .


8-1073893586
Lexer
2004-01-12 10:46
2004.04.25
Нужен DirectX для Delphi7


1-1081343059
Ne_Vaszno
2004-04-07 17:04
2004.04.25
Взаимодействие нескольких TStringList


1-1081341912
Diver
2004-04-07 16:45
2004.04.25
Работа с мат. функциями


6-1077967331
Morg
2004-02-28 14:22
2004.04.25
Срочно, как отослать Stream нескольким пользователям (SreverSocke