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

Вниз

Добавить в exe другой exe и потом его извлечь   Найти похожие ветки 

 
Артем   (2008-01-11 12:27) [0]

Добрый день!

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

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

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

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


 
Сергей М. ©   (2008-01-11 12:30) [1]


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


Записать - см. BeginUpdateResource + UpdateResource + EndUpdateResource
Извлечь - см., например, TResourceStream


 
clickmaker ©   (2008-01-11 12:32) [2]

UpdateResource / LoadResource


 
Артем   (2008-01-11 12:45) [3]

Спасибо.
Но это ведь работает в случае, если речь идет об исполняемом файле.
У меня же получается, что основная программа (№1) должна добавить данные в ресурсы другой программы (№2).
Как обратиться к №2 и использовать BeginUpdateResource + UpdateResource + EndUpdateResource?


 
Сергей М. ©   (2008-01-11 12:49) [4]


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


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


> Как обратиться к №2 и использовать BeginUpdateResource +
> UpdateResource + EndUpdateResource?
>


Справку к упомянутым ф-циям ты уже проштудировал ? Что тебе там непонятно ?


 
Артем   (2008-01-11 12:55) [5]

Штудирую сейчас. Если не разберусь в чем-то, то напишу. Спасибо.


 
Артем   (2008-01-11 13:18) [6]

И тут же вопрос по делу: а если у пользователя 98-ая винда???
Работать-то не будет ведь...
Что делать?


 
Плохиш ©   (2008-01-11 13:29) [7]


> Артем   (11.01.08 13:18) [6]
> Что делать?


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

Почему бы не использовать обычные файлы сохраняемые на диске, обязатеьно надо их куда-то запихивать? А потом спрашивают "Что делать?"...


 
Сергей М. ©   (2008-01-11 13:32) [8]


> Работать-то не будет ведь


Чтой-то вдруг ?


 
Правильный_Вася   (2008-01-11 13:34) [9]

эпидемия какая-то


 
Артем   (2008-01-11 13:47) [10]


> Почему бы не использовать обычные файлы сохраняемые на диске,
>  обязатеьно надо их куда-то запихивать? А потом спрашивают
> "Что делать?"...


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


> Чтой-то вдруг ?


вычитал, что работает только под NT и выше.


 
clickmaker ©   (2008-01-11 13:49) [11]


> программка для регулярного перемещения из одного компьютера
> в другой

сетевой червь? :) тогда, конечно, пользователя заставлять не надо


 
Сергей М. ©   (2008-01-11 13:57) [12]


> Не хотелось бы заставлять пользователя "таскать" с собой
> еще кучу файлов, без которых exe-шник не работает


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


> вычитал, что работает только под NT и выше


Плохо читал.

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


 
Артем   (2008-01-11 14:15) [13]


> На то существует технология генерации и использования инсталляционых
> дистрибутивов, которыне в комплекте поставки могут содержать
> в т.ч. всего один исп.файл.


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


> Проблема только в поддержке Юникода, решается она установкой
> слоя оной поддержки. Мелкомягкие для этого предрагают соотв.
> инструмент.


Где об этом почитать?


 
Сергей М. ©   (2008-01-11 14:27) [14]


> Где об этом почитать?
>


Известно где - в Гугле)

http://www.google.ru/search?q=MS+Unicode+Layer&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a


>
> В моем случае данный вариант не уместен


Чтой-то вдруг ?

Генеришь инст.дистрибутив из одного-единственного исп.файл и тащишь его к любому клиенту - клиент запускает его и инсталлирует все необходимые файлы в комлекте поставки.


 
Артем   (2008-01-11 14:43) [15]


> Генеришь инст.дистрибутив из одного-единственного исп.файл
> и тащишь его к любому клиенту - клиент запускает его и инсталлирует
> все необходимые файлы в комлекте поставки.


Нет, не то. Объясню. У меня такая ситуация. Тут в цепочке 3 звена:
1. Я - разработчик
2. Пользователь - мастер, который задает необходимые параметры в основной программе
3. Конечный пользователь

Основная программа вытаскивает из своего ресурса готовый exe-шник, генерирует несколько файлов во время исполнения основной программы (параметры задаются пользователем-мастером). Этот exe и юзается конечным пользователем.
Т.е. у меня на выходе exe и еще один файл - они предназначены для конечного пользователя. Для удобства пользования я хочу зашить этот "еще один файл" в exe (или в ресурс exe) и потом к нему обращаться.

Инсталлятор в моем случае не привычен и нафиг не нужен :) Конечному пользователю надо скачать этот exe из инета, например, и запустить. И все.


 
Артем   (2008-01-11 14:46) [16]

И еще. Тот самый "еще один файл" дает указания готовому exe-шнику как ему вести (в нем все настройки, приложения и т.д.).

Вот такой вот конструктор :)


 
Артем   (2008-01-11 14:59) [17]


> http://www.google.ru/search?q=MS+Unicode+Layer&ie=utf-8&oe=utf-
> 8&aq=t&rls=org.mozilla:ru:official&client=firefox-a


Скачал unicows.exe. Я правильно понял: надо его зашить в ресурс exe-шника для конечного пользователя, в случае если у него на Win98, то извлечь из ресурса и запустить установку. Что потом? Просто установка решает проблему?


 
Сергей М. ©   (2008-01-11 15:17) [18]


> Т.е. у меня на выходе exe и еще один файл


А в этой "цепочке" ты КТО ?)


 
Артем   (2008-01-11 15:20) [19]

Имел ввиду у "пользователя-мастера"


 
Сергей М. ©   (2008-01-11 15:22) [20]

Я пока не понял, чем "пользователь-мастер" отличается от "пользователя-подмастерья")..


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

Объясняю. Пользователь-мастер с помощью основной программы (приложение №1) генерирует необходимые настройки для приложения №2.

Конечному пользователю доступно только приложение №2, а пользователю-мастеру - оба (и №1 и №2).


 
Артем   (2008-01-11 15:34) [22]

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


 
Сергей М. ©   (2008-01-11 15:38) [23]


> Артем   (11.01.08 15:28) [21]


"Мастеру" ты поставляешь дистрибутив ?


 
Артем   (2008-01-11 15:38) [24]

да


 
Артем   (2008-01-11 15:38) [25]

да


 
Сергей М. ©   (2008-01-11 15:39) [26]

Описывай состав дистрибутива ..


 
Anatoly Podgoretsky ©   (2008-01-11 15:39) [27]

> Плохиш  (11.01.2008 13:29:07)  [7]

Файлы ценные, вдруг пользователь ламер и не сможет их извлечить из реестра
Второе предположение - автор мазохист


 
Anatoly Podgoretsky ©   (2008-01-11 15:40) [28]

> Артем  (11.01.2008 13:47:10)  [10]

Ой а они очень тяжелые, пользователь надорвется, не сможет дотащить.


 
Артем   (2008-01-11 15:46) [29]


> Ой а они очень тяжелые, пользователь надорвется, не сможет
> дотащить.


Не удобно. Например, чтобы перенести и прочитать Word-файл не нужно вместе с DOC перетаскивать все картинки, которые там использованы, специальные настройки для этого документа и так далее.
Ну это для примера. У меня проще.


> Файлы ценные, вдруг пользователь ламер и не сможет их извлечить
> из реестра


Не о реестре речь.


> Описывай состав дистрибутива ..


Мы правильно друг друга поняли: описать что выполняет второй exe-шник?


 
Dennis I. Komarov ©   (2008-01-11 15:46) [30]

Меняй логику и не извращайся!


 
Артем   (2008-01-11 15:48) [31]


> Меняй логику и не извращайся!


Подскажешь на какую ее сменить? :)


 
Сергей М. ©   (2008-01-11 16:05) [32]

Ты дистрибутив кому пгоставляешь - суперпупер-юзеру или просто юзеру ?)


 
Dennis I. Komarov ©   (2008-01-11 16:13) [33]

> [31] Артем   (11.01.08 15:48)

Да откуда я знаю какие еще тараканы у тебя в голове...
Например юзай лицензионный ключ в котором будет зашифровано что можно, а что низя юзеру


 
Артем   (2008-01-11 16:13) [34]

на суперпупер-юзерской машине генерируются настройки с помощью основной программы

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

Так понятно теперь? :)


 
Артем   (2008-01-11 16:24) [35]

еще раз, возможно, повторюсь:

в моем проекте всего 2 exe-файла.
первый - сохраняет настройки, выполняет необходимые основные операции и т.д., после чего вытаскивает из себя заранее приготовленный exe (№2), а также генерирует файл типа IStorage

второй (№2) - "понимает", что было сделано первым за счет сгенерированного файла (типа IStorage)

Мне нужно, чтобы этот сгенерированный файл (типа IStorage)  зашивался к второму exe-шнику и он ((exe-шник)) его  мог извлекать.


 
Dennis I. Komarov ©   (2008-01-11 16:31) [36]

> [35] Артем   (11.01.08 16:24)

- Делаешь ехе который при первом запуске делает все что тебе надо для юзера.
- Делаешь ехе которуй генерит IStorage согласно манипуляиям супер-юзера (а вообще я бы возложил эту обязанность на тебя. Это и будет лиц. ключем)
- На какого IStorage зашивать в exe - я так и не понял...


 
Dib@zol ©   (2008-01-11 16:33) [37]

> [35] Артем   (11.01.08 16:24)
> еще раз, возможно, повторюсь:
>
> в моем проекте всего 2 exe-файла.
> первый - сохраняет настройки, выполняет необходимые основные
> операции и т.д., после чего вытаскивает из себя заранее
> приготовленный exe (№2), а также генерирует файл типа IStorage
>
> второй (№2) - "понимает", что было сделано первым за счет
> сгенерированного файла (типа IStorage)
>
> Мне нужно, чтобы этот сгенерированный файл (типа IStorage)
>  зашивался к второму exe-шнику и он ((exe-шник)) его  мог
> извлекать.

А теперь, внимание вопрос: А зачем извлекать, а не поставлять сразу 2 екзешника? Или просто не извращаться и запихнуть весь исполняемый код в один проект и откомпилировать заново???


 
Артем   (2008-01-11 16:41) [38]


> Dennis I. Komarov ©   (11.01.08 16:31) [36]


Дело в том, что основная программа предназначена для регулярного использования для генерации различных данных IStorage.

Данные IStorage хранятся в файле с расширением stg, например.

Основная программа копирует из себя второй exe-шник (например, file.exe) и сгенерированный файл abcd.stg (к примеру) в папку C:\proekt\
В данном раскладе, если удалить или переместить abcd.stg, то file.exe не загрузится в нужном виде.

А предъявлять к конечному пользователю требования "типа не удаляйте из папки файл abcd.stg и не записывайте в нее больше никаких файлов с расширением .stg" - этого делать не хочется. Все должно быть просто. Такая задача.


 
Артем   (2008-01-11 16:44) [39]


> А теперь, внимание вопрос: А зачем извлекать, а не поставлять
> сразу 2 екзешника?

По очень простой причине:
основная программа - это программный продукт, который стоит денег

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


 
Dennis I. Komarov ©   (2008-01-11 16:52) [40]

> А предъявлять к конечному пользователю требования "типа
> не удаляйте из папки файл abcd.stg и не записывайте в нее
> больше никаких файлов с расширением .stg" - этого делать
> не хочется. Все должно быть просто. Такая задача.

Это не задача а бред. Что значит разрешить удалять файл настроек? Разве не бред?

Я не вижу ничего такого, что мешало бы тебе сделать все это согласно [36]
Есть юзер-софт - который работает согласно настройкам
Есть Админ-софт - который генерирует эти настройки

Все остальное - это твои извращения - явно не здоровые.



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

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

Наверх




Память: 0.57 MB
Время: 0.028 c
15-1197891695
data
2007-12-17 14:41
2008.02.03
а кто куда носит компы в ремонт?


15-1198385722
Dust
2007-12-23 07:55
2008.02.03
почему перестал развиваться сайт?


15-1198599946
Kerk
2007-12-25 19:25
2008.02.03
Линуксоиды маст дай :)))


15-1198483076
wipr
2007-12-24 10:57
2008.02.03
Проблемы с регистрацией Borland Developer Studio 2006


15-1198324676
Kostafey
2007-12-22 14:57
2008.02.03
К вопросу о культурном проектировании реляционных БД