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

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

Добавить в exe другой exe и потом его извлечь [D6, XP]


Страницы:   1 2 3 4 5

Артем ©   (2008-01-11 12:27:00) 

Добрый день!

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

1. Приложение №1 должно записать в Приложение №2 файл другого формата (например, dat или INI)
2. После чего Приложение №2 должно извлечь записанный в него файл.

Как это организовать?

Заранее очень признателен за помощь.


Артем   (2008-01-11 21:53:00) [21]


> в ходе инсталляции стартуешь ее


Вот здесь вот давайте задержимся на 1 минуту и больше у меня вопросов нет:
мне нужно, чтобы эта хрень мелкомягкая запускалась на компе пользователя?


Артем   (2008-01-11 21:51:00) [22]

Т.е. вот это дело BeginUpdateResource + UpdateResource + EndUpdateResourceмне надо обяъвить в своем приложении, обращаясь к ДЛЛ (для этого она должна лежать вместе с прогой при компиляции).

Все правильно?


Сергей М.   (2008-01-11 21:50:00) [23]


> Артем   (11.01.08 21:46) [69]


Ну и что тебе, птыть, не понятно ?

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


Артем   (2008-01-11 21:49:00) [24]


> В ресурсе типа RT_RCDATA ты волен держать хоть ИСтораже


Я прекрасно это понял. См. [5] и [6]
Все, чем после этого мы занимались - так это обсуждали мою задачу - хорошая она или плохая, нахрена или как и т.д.


Dib@zol   (2008-01-11 21:47:00) [25]

> [66] Артем   (11.01.08 21:40)
> Не могу понять как и где присоединять unicows.dll к проекту?
> Читаю здесь - http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx
Охх. Грехи мои тяжкие. Надо просто реализовать динамический вызов функций из етой ДЛЛки, и ТАСКАТЬ ЕЁ С ПРОГОЙ, ЗАШИВАТЬ ЕЁ ТУДА НЕЛЬЗЯ!!! В принципе, вообще-то, возможно всё. Но это будет "способ через Ж$@У"...


Артем   (2008-01-11 21:46:00) [26]


> Сергей М. ©   (11.01.08 21:43) [68]


Я уже с этим разобрался. Народ, ну ё-моё, о другом ведь уже спрашиваю начиная с [17]


Сергей М.   (2008-01-11 21:43:00) [27]


> как из проги №1 пришить к проге №2 файл типа IStorage


Да точно так же как и файл типа IХренаже.

Ты тупой или где ?)

В ресурсе типа RT_RCDATA ты волен держать хоть ИСтораже, хоть ИХренаже хоть ЧЕРТА ЛЫСОГО)


Артем   (2008-01-11 21:41:00) [28]


> > в exe другой exe
>
>
> Гониво)


Я не правильно задал название темы топика, а изменить его не могу.


Артем   (2008-01-11 21:40:00) [29]


> Ищи в справке, в этих функциях всё предельно просто.
> BeginUpdateResource + UpdateResource + EndUpdateResource.
>


Я с этим разберусь.

Основной вопрос, который не решен, с остальными справлюсь:
Не могу понять как и где присоединять unicows.dll к проекту?
Читаю здесь - http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx


Сергей М.   (2008-01-11 21:39:00) [30]


> stg...зашить
> во .. екзе...


сравниваем с


> в exeдругой exe


Гониво)


Артем   (2008-01-11 21:36:00) [31]


> Сначала пропиши в ресурсный файл №1 свою мега супер прогу
> №2.
> Затем пиши распаковщик в своей проге №1:
> 1) С помощью Find/LoadResource получай указатель на первый
> байт образа проги из ресов.
> 2) Создавай новый файл CreateFile'ом.
> 3) Прописывай в него SizeOfResource байт твоей проги №2.
>
> 4) Закрывай файл.


Как вышить из проги №1 прогу №2 - это без проблем. Это делается вот так:
function ExtractRes(ResType, ResName, ResNewName: string): Boolean;
var
 Res: TResourceStream;
begin
 Result := False;
 Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType));
 try
   Res.SavetoFile(ResNewName);
   Result := True;
 finally
   Res.Free;
 end;
end;


И все. Речь (еще раз, еще много-много раз) идет о другом:
как из проги №1 пришить к проге №2 файл типа IStorage, чтобы потом прогой №2 же можно было его вынуть и считать.


Dib@zol   (2008-01-11 21:36:00) [32]

О боже. Ну нахрена зашивать то? Нахрена??? Нахрена??? ааааа

/me Бьётся головой апстол

ЗЫ В общем, горбатого могила исправит. Ищи в справке, в этих функциях всё предельно просто.
BeginUpdateResource + UpdateResource + EndUpdateResource.


Сергей М.   (2008-01-11 21:33:00) [33]


> Артем   (11.01.08 21:26) [58]


Тёма, золотце, "пихать" не надо - оно опасно)..  сломается)

см. [1]

ссылка на Маздай за отмазку не канается.


Артем   (2008-01-11 21:31:00) [34]


> Istorage - исполняемый, а я - Папа римский.


Приехали. Давай еще раз раз такая пьянка. Исполняемых EXE-файла ДВАштуки. ДВА и только два. Еще раз повторяю: exe два штуки.
Файл типа abc.stg (IStroge) - один. Всего один.

Еще раз:Файл типа abc.stg (IStroge) - один

Его необходимо зашить во второйекзешники сделать это из первогоекзешника.


Dib@zol   (2008-01-11 21:30:00) [35]

Сам включи. И слушай.

Сначала пропиши в ресурсный файл №1 свою мега супер прогу №2.
Затем пиши распаковщик в своей проге №1:
1) С помощью Find/LoadResource получай указатель на первый байт образа проги из ресов.
2) Создавай новый файл CreateFile'ом.
3) Прописывай в него SizeOfResource байт твоей проги №2.
4) Закрывай файл.

Вуаля.


Сергей М.   (2008-01-11 21:27:00) [36]


> Артем   (11.01.08 21:13) [55]



> файл типа Istorage


Опа, приехали.

Istorage - исполняемый, а я - Папа римский.


Артем   (2008-01-11 21:26:00) [37]

Можно екзешник не запихивать. Не в этом вопрос.
Вопрос в том, как в него запихнуть скомпилированный файл типа ISorage?


Dib@zol   (2008-01-11 21:19:00) [38]

Со 150-го раза не понятно, зачем это делается. Такая, так сказать, компоновка очень сильно восстановит против вашей проги все имеющиеся на компе антивирусы. И если какие-то могут и спросить, что делать с этим подозрительным ехе-шником - карантинить или удалять, то другие потрут его сразу. Надеюсь, ЭТО доходчиво?

и ЗАЧЕМ, ну   З А Ч Е М  уталкивать всё в один файл? Чтобы создать впечатление, что извлечённый екзешник был только что скомпилирован Вашей программой? ИМХО, не стоит.


Артем   (2008-01-11 21:17:00) [39]

Господа, включите мозг. Я уже устал повторять одно и то же :)
Либо Вы не знаете как это сделать (тогда признайтесь и не занимайтесь флудом), либо придется еще раз повторить, кто хоть немного въехал в задачу.


Артем   (2008-01-11 21:13:00) [40]

Тебе 105-ый раз повторяю. Слушай сюда еще раз:
"Мастер-пользователь" генерит у себя на компьютере программы (html WebBrowser по большей части). Это делает программа №1, эта же программа вынимает из себя заранее подготовленную программу №2 и говорит "вот этот файл вручайте своим клиентам".
Понимаешь? Или еще раз объяснить?

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

Неужели со 150-ого раза не понятна разница между "конечным пользователем" и "мастер-пользователем"??? :)))


Страницы:   1 2 3 4 5

Наверх

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