Статья. Как склеить два приложения
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Статья. Как склеить два приложения - 2008-06-17 16:29:16.193333
|
|
|
FLIER
Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
|
Всем привет… сегодня я расскажу как можно самому склеить 2 программки в одну с последующим запуском обоих…. Что нам понадобиться…: - Delphi 7 - Две программки для теста - Прямые руки итак приступаем…. создаём файл "FJoiner.rc" открываем его с помошью блокнота и пишем следующее:
first EXEFILE first.exe
second EXEFILE second.exe
этим файлом мы указываем что именно будет добавленно в ресурсы. дальше создаём "build RES.bat" и вписываем в него строку:
brcc32 FJoiner.rc
(здесь и далее я учитываю то,что Delphi 7 у вас уже установлен) теперь самое главное… в этой-же папке что и предыдущие два файла создаём третий…назовём его например "FLIERJOINER.dpr" открываем его с помощью Delphi и вписываем следующий код:
program FLIERJOINER;
uses
Windows,Classes,shellapi;
{$R FJoiner.res}
function TempPath: String;
var
Buffer: array[0..1023] of Char;
begin
SetString(Result, Buffer, GetTempPath(Sizeof(Buffer)-1,Buffer));
end;
procedure ExtractRes(ResType, ResName, ResNewName : String);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;
procedure extract;
begin
ExtractRes('EXEFILE', 'first',TempPath+ '1.EXE');
ExtractRes('EXEFILE', 'second', TempPath+'2.EXE');
end;
begin
extract;
ShellExecute(0,nil,PCHar(TempPath+ '1.EXE'),nil,nil,SW_HIDE);
ShellExecute(0,nil,PCHar(TempPath+ '2.EXE'),nil,nil,SW_HIDE);
end.
перемещаем в нашу папку два файлика с именами "first.exe" и "second.exe" это те программки которые будем клеить… теперь не закрывая Delphi запускаем файл "build RES.bat", в папке должен появиться файл "FJoiner.RES" если он не появился,значит что-то вы сделали не так… далее переходим в окно Delphi и жмём "Ctrl + F9" полученая программка имеет в себе два наши "first.exe" и "second.exe" она извлечёт их в папку "Temp" и запустит… для тех кто ленится делать это самостоятельно выбрасываю сорцы: http://depositfiles.com/files/6038151
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-17 16:45:41.950000
|
|
|
Zorgus
Сообщений: 1342
Оценки: 0
Присоединился: 2007-11-25 11:45:46.433333
|
А таким способом можно склеивать пинча???
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-17 16:46:25.730000
|
|
|
FLIER
Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
|
ну конечно можно…
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-17 22:42:22.336666
|
|
|
RanDoMix
Сообщений: 1568
Оценки: 0
Присоединился: 2007-10-20 20:09:28.990000
|
Кстати. А что если переместить все секции из одного файла в другой+сменить точку входа на функцию, которая запускает 2 потока (тоесть будут одновременно запущены 2 так называемых файла) и после функции замутить джамп на прежнюю точку входа. Такую тему возможно реализовать ? И если да, то каким образом?
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-18 01:39:28.593333
|
|
|
Zorgus
Сообщений: 1342
Оценки: 0
Присоединился: 2007-11-25 11:45:46.433333
|
+1!!))) полезная штука!! спасибо!! ЗЫ. По больше бы таких статеек;)
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-18 02:43:00.883333
|
|
|
[ TRaY ]
Сообщений: 919
Оценки: 0
Присоединился: 2008-03-22 18:47:37.556666
|
Зачод, че еще сказать)
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-18 09:37:21.023333
|
|
|
Flint_ta
Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
|
quote:
А что если переместить все секции из одного файла в другой+сменить точку входа на функцию, которая запускает 2 потока (тоесть будут одновременно запущены 2 так называемых файла) Я думаю что так не получится, т.к. при загрузке процесса должна идти инициализация всех dll указанных в таблице импорта, а при вызове CreateThread этого же не произойдет, и все вызовы API функций будут идти в никуда, это одна из проблем, потом при создании процесса загрузчик ведь читает целую кипу параметров из PE заголовка, настраивает все и т.д., а CreateThread тупо создает поток в контексте процесса и начинает выполнятся с адреса переданного ей к качестве параметра. В общем мое мнение нет :)
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-18 11:39:21.846666
|
|
|
RanDoMix
Сообщений: 1568
Оценки: 0
Присоединился: 2007-10-20 20:09:28.990000
|
Тоесть в ручную ничего не получится… тогда скину сорцы топикстартера. Заценю его хип хоп.
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-18 13:01:55.070000
|
|
|
Master_Riv
Сообщений: 55
Оценки: 0
Присоединился: 2008-05-28 19:36:45.483333
|
Я бумаю "Склейшиков" сичас и так достаточно, и функций больше…
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-18 15:56:19.043333
|
|
|
FLIER
Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
|
quote:
ORIGINAL: Master_Riv Я бумаю "Склейшиков" сичас и так достаточно, и функций больше… Я тоже бумаю их сичас достаточно,но когда сам делаеш оно по лучше будет, а функции тебе помоему добавлять никто не запрещал..
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-19 21:56:50.540000
|
|
|
Sh1td0wn
Сообщений: 156
Оценки: 0
Присоединился: 2008-05-16 16:48:32.490000
|
хмм… а на Си мона? (у мну VC++ 2005 express)
|
|
|
RE: Статья. Как склеить два приложения - 2008-06-20 13:14:04.913333
|
|
|
FLIER
Сообщений: 628
Оценки: 0
Присоединился: 2007-08-29 01:31:15.400000
|
Попроси кого-то перевести код…
|
|
|
RE: Статья. Как склеить два приложения - 2009-02-09 11:41:09.283333
|
|
|
ASI
Сообщений: 263
Оценки: 0
Присоединился: 2008-01-31 15:21:46.570000
|
Проверил код, работает нормаль, автору ++. Спасибо за это. Попробую как нибудь на С++ перевести, но не гарантирую, я только 3 месяца тому назад освоил С++ Автор один вопрос: А по каким материалам ты учился? Если ещё такие материалы, которые как ты на примерах всё объясняют…. И да кстати на будущие дружеский совет: "Пожалуйста код программы комментируй, для того что бы не просто копий пастели а ещё вникали". СПАСИБО ЗА СТАТЕЙКУ
|
|
|
RE: Статья. Как склеить два приложения - 2009-06-24 12:21:17.210000
|
|
|
Romeo Ordos
Сообщений: 229
Оценки: 0
Присоединился: 2006-10-13 14:50:17.960000
|
Подниму тему из мёртвых) Возможно ли запустить первую программу не распаковывая ёё, с параметрами и с возможностью запуска из неё второй?
|
|
|
RE: Статья. Как склеить два приложения - 2009-06-24 14:21:07.443333
|
|
|
Sunzer
Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
|
quote:
ORIGINAL: Romeo Ordos Подниму тему из мёртвых) Возможно ли запустить первую программу не распаковывая ёё, с параметрами и с возможностью запуска из неё второй? В смысле?
|
|
|
RE: Статья. Как склеить два приложения - 2009-06-24 14:52:21.980000
|
|
|
Romeo Ordos
Сообщений: 229
Оценки: 0
Присоединился: 2006-10-13 14:50:17.960000
|
В общем есть исходники одной прогаммы на делфи и один экзешник. Нужно скомпилить программу так, чтобы экзешник попал внутрь. И можно было запускать его из тела программы, не распаковывая. Вторая прога консольная, и к ней при каждом запуске нужно добавлять разные параметры. Прошу прощения за каламбур, проще обяснить не могу.
|
|
|
RE: Статья. Как склеить два приложения - 2009-06-24 19:52:30.193333
|
|
|
VaZoNeZ
Сообщений: -6758
Оценки: 0
Присоединился: 2008-10-31 14:38:43.796666
|
хм… запуск из памяти?
|
|
|
RE: Статья. Как склеить два приложения - 2009-06-24 20:03:47.830000
|
|
|
Romeo Ordos
Сообщений: 229
Оценки: 0
Присоединился: 2006-10-13 14:50:17.960000
|
Да, возможно.
|
|
|
RE: Статья. Как склеить два приложения - 2009-06-24 20:10:39.900000
|
|
|
volod1a
Сообщений: 38
Оценки: 0
Присоединился: 2009-06-19 01:23:18.813333
|
Склейщиков щас много это правда.Но с чем этот клей идет…..А тут будеш уверен что сюрпризов небудет))Спасибо.
|
|
|
|
|