Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запуск одного ехе из другого [D6, XP]


Pasha L ©   (2005-09-27 22:11:00) 

Здравствуйте. У меня вопрос: можно ли с помощью Дельфи зашить A.exe в B.exe, чтобы потом при запуске B.exe запустить A.exe, не извлекая его для этой цели наружу?


Джо   (2005-09-28 19:22:00) [1]

Дополнение к [6].
В чем СМЫСЛ подобных манипуляция?

Если "екзешник" - твой, то зачем геморрой, если уже все давно придумано и выложено на тарелочку с голубой каемочкой - DLL.
Если "екзешник" - чужой, то это, вероятно, нарушение авторских прав - и в любом случае блажь...


umbra   (2005-09-28 19:21:00) [2]


> Но мне надо, чтоб A.exe не извлекался, а запускался напрямую
> из B.exe.


Так не получится, если не написать свой загрузчик, как справедливо отметил > Джо ©  . Дешевле, наверное, извлечь, віполнить и удалить. А еще дешевле сделать ОДИН экзешник


Джо   (2005-09-28 19:18:00) [3]


> [5] Pasha L ©   (28.09.05 19:12)

Ты готов писать собственный загрузчик? Думаю, что нет.


Pasha L   (2005-09-28 19:12:00) [4]

S@ska   (27.09.05 22:58) [2]
Я посмотрел ссылку. Но там есть ещё одна ссылка, которая возможно могла бы мне помочь. Но дело в том, что она дохлая. Всё остальное - про зашивание ехе в ехе я знаю. И как извлечь его потом - тоже знаю. Делаю это так:
Создаю r.rc, где пишу key0 EXEFILE A.exe. Потом даю команду brcc32.exe r.rc. Получаю r.res. В B.dpr пишу {$R r.res}. Для дальнейшего извлечегия A.exe пишу

program myprog;
uses
 classes, windows;
var
 res:TResourcestream;
begin
 Res:=TResourceStream.Create(Hinstance, 'key0', Pchar('EXEFILE'));
 Res.SavetoFile('A.exe');
 Res.Free;
 winexec('A.exe',SW_NORMAL);
end.

Компилирую B.dpr, получаю B.exe. Запускаю B.exe, получаю извлеченный и запущенный A.exe. Вот. Но мне надо, чтоб A.exe не извлекался, а запускался напрямую из B.exe.


Вова Полтавский   (2005-09-28 09:57:00) [5]

Думкин ©   (28.09.05 06:28) [3]

Следующий вопрос будет - А как запустить *.exe образ из памяти :) 100%


Думкин   (2005-09-28 06:28:00) [6]

> Pasha L ©   (27.09.05 22:11)  

1. Почти наверняка вы будете обвинены в вирусописательстве.
2. Почти наверняка вы обидетесь.
3. Почти наверняка вы не вирус пишите.
4. Почти наверняка вы неправы.

Если вы продрались сквозь расставленный мной лес и от 100% уверенности у вас отсалось хотя бы 5, то

1. что смущает в сохранении на диск?
2. что смущает в выносе кода в библиотеку?

Или вопрос ПРИНЦИПИАЛЬНЫЙ? Я бы и больше буквы сделал - но увы - никак.

Возможности есть. Но... стоит ли?

Если после этого ваша уверенность выше 1% - ждите.


S@ska   (2005-09-27 22:58:00) [7]

Во кстати - пож-ста
http://forums.realcoding.net/index.php?s=dbb1b8969be86397e26e790de2efa209&act=Print&client=printer&f=2&t=1737


S@ska   (2005-09-27 22:48:00) [8]

Если Присоединить второй EXE в качетве ресурса к первому
Потом при старте первого ты из ресурса забираешь второй и сохраняешь его на диске. И дале просто запускаешь с помощью CreateProcess или WinExec :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо