Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Как во время выполнения программы создать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.037 c
3-1080538686
WondeRu
2004-03-29 09:38
2004.04.25
DateTime in Update


3-1080718832
Mary
2004-03-31 11:40
2004.04.25
Базы IB


14-1080769770
easy
2004-04-01 01:49
2004.04.25
проздравляю с праздником..


1-1081170427
vv_fran
2004-04-05 17:07
2004.04.25
Почему дата 12/30/1899 - нулевая в Делфи?


3-1080716239
Timur
2004-03-31 10:57
2004.04.25
DBF в delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский