![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавить в exe другой exe и потом его извлечь [D6, XP]
Артем © (2008-01-11 12:27:00)Добрый день!
Помогите решить такую задачку, которая передо мной встала, советами или ссылочками, если уже была рассмотрена подобная тема.
1. Приложение №1 должно записать в Приложение №2 файл другого формата (например, dat или INI)
2. После чего Приложение №2 должно извлечь записанный в него файл.
Как это организовать?
Заранее очень признателен за помощь.
Сергей М. (2008-01-11 19:30:00) [41]
> Блин, еще раз :)Пользователя ДВА
Угу
И ты в своем инсталляционном шедевре спрашиваешь у пользователя, мол, ты кто долбаный ты пользователь - номер один ты или номер ты два \\)))
Dennis I. Komarov (2008-01-11 18:09:00) [42]Не хотел бы попасть к хирургу, который апендицит через анус извлекает, да еще вилкой :)
Dib@zol (2008-01-11 17:54:00) [43]> Он их и получает. Просто один зашит в другую (прицеплен
> к ресурсу).
Что он их получает, мы уже поняли. А можно нескромный вопрос: какова ЦЕЛЬтакого подхода?
Артем (2008-01-11 17:33:00) [44]
> А тогда почему бы мастер-пользователю не получить-таки две
> проги сразу отдельно?
Он их и получает. Просто один зашит в другую (прицеплен к ресурсу).
Сложно объяснять "на пальцах", поэтому такие недоуменя возникают...
>Более того, любой юзер свободно сможет эту твою "стоящую
> денег" извлекаемую прогу скопировать себе во время работы
НЕЕЕТ! Не может! Так как это не основная программа, а ее отделенная часть.
Это как в авиастроении :) Модуль отсоединяется от корабля. Имея управление модулем, ты никак не можешь получить доступ к управлению кораблем.
Dib@zol (2008-01-11 17:28:00) [45]> Блин, еще раз :)
>
> Пользователя ДВА
>
> Один "мастер-пользователь". У него этот программный продукт.
> В этом программном продукте к ресурсу прицеплен другой exe-
> файл. "Мастер-пользователь" с помощью этого программного
> продукта вносит свои данные, эти данные записываются в файл
> типа IStorage, плюс из программного продукта извлекается
> второй exe-шник (тот самый, который в ресурсе лежит изначально)
> .
> Все это дело, 2 файла (exe и IStorage) копируются в папку
> т.н. "нового проекта".
>
> "Конечный пользователь" получает от "мастера-пользователя"
> вышитый exe-файл, который работает на основе созданного
> "мастер-пользователем" IStorage-файл.
>
> ВАЖНО: у конечного пользователя нет основной программы,
> которой был создан IStorage-файл. Поэтому его exe-файл обращается
> к IStorage-файлу, получает необходимые данные и преобразовывает
> приложение на основе этих данных.
А тогда почему бы мастер-пользователю не получить-таки две проги сразу отдельно? Какие-то религиозные соображения? :)
Dib@zol (2008-01-11 17:27:00) [46]> По очень простой причине:
> основная программа - это программный продукт, который стоит
> денег
> программы, которые были созданы с помощью этого продукта
> бесплатны и доступны с любой машины любому конечному пользователю
Хм. И что с того??? Нахрена паковать, ты так и не объяснил... Более того, любой юзер свободно сможет эту твою "стоящую денег" извлекаемую прогу скопировать себе во время работы. И тут уже мало что поможет. Тем более, почему никто не сказал, что на такой мягко говоря ректальный алгоритм не будет ругаться антивирь?
Артем (2008-01-11 17:24:00) [47]Блин, еще раз :)
Пользователя ДВА
Один " мастер-пользователь". У него этот программный продукт. В этом программном продукте к ресурсу прицеплен другой exe-файл. "Мастер-пользователь" с помощью этого программного продукта вносит свои данные, эти данные записываются в файл типа IStorage, плюс из программного продукта извлекается второй exe-шник (тот самый, который в ресурсе лежит изначально).
Все это дело, 2 файла (exe и IStorage) копируются в папку т.н. "нового проекта".
" Конечный пользователь" получает от " мастера-пользователя" вышитый exe-файл, который работает на основе созданного "мастер-пользователем" IStorage-файл.
ВАЖНО: у конечного пользователя нет основной программы, которой был создан IStorage-файл. Поэтому его exe-файл обращается к IStorage-файлу, получает необходимые данные и преобразовывает приложение на основе этих данных.
Сергей М. (2008-01-11 17:14:00) [48]
> Артем (11.01.08 17:12) [46]
Ты его, этот самый "Один exe-файл", КОМУ поставляешь ?
Артем (2008-01-11 17:12:00) [49]
> Сергей М
Один exe-файл
Сергей М. (2008-01-11 17:10:00) [50]
> Артем (11.01.08 17:02) [44]
> что имеешь ввиду?
Ты в каком "файлоорганизационном" виде доставляешь потребителю свои "шедевры" ?
Артем (2008-01-11 17:02:00) [51]
> Ты его КАК распространяешь, чудо ?)
не понял вопроса. ты что имеешь ввиду?
Артем (2008-01-11 17:02:00) [52]
> Dennis I. Komarov
Я сюда пришел не для того, чтобы обсудить задачу, а для того, чтобы ее решить. Поэтому, если кому-то это кажется бредом, то нам не о чем говорить.
Если есть решения моей задачи, то прошу помочь.
Повторяю основной вопрос [22], на котором мы остановились:
Не могу понять как и где присоединять unicows.dll к проекту, и как это использовать?
Читаю здесь - http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx
===============
С BeginUpdateResource + UpdateResource + EndUpdateResource - с этим разберусь. Этот путь меня устраивает. К тому же есть возможность предварительно зашить в ресурс пустой файл, который будет заменяться на необходимый (на сгенерированный "abcd.stg")
Сергей М. (2008-01-11 16:55:00) [53]
> Артем
> основная программа - это программный продукт
Ты его КАК распространяешь, чудо ?)
Dennis I. Komarov (2008-01-11 16:53:00) [54]> [39] Артем (11.01.08 16:44)
И на этом ты еще хочешь заработать........ :(
Dennis I. Komarov (2008-01-11 16:52:00) [55]> А предъявлять к конечному пользователю требования "типа
> не удаляйте из папки файл abcd.stg и не записывайте в нее
> больше никаких файлов с расширением .stg" - этого делать
> не хочется. Все должно быть просто. Такая задача.
Это не задача а бред. Что значит разрешить удалять файл настроек? Разве не бред?
Я не вижу ничего такого, что мешало бы тебе сделать все это согласно [36]
Есть юзер-софт - который работает согласно настройкам
Есть Админ-софт - который генерирует эти настройки
Все остальное - это твои извращения - явно не здоровые.
Артем (2008-01-11 16:44:00) [56]
> А теперь, внимание вопрос: А зачем извлекать, а не поставлять
> сразу 2 екзешника?
По очень простой причине:
основная программа - это программный продукт, который стоит денег
программы, которые были созданы с помощью этого продукта бесплатны и доступны с любой машины любому конечному пользователю
Артем (2008-01-11 16:41:00) [57]
> 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" - этого делать не хочется. Все должно быть просто. Такая задача.
Dib@zol (2008-01-11 16:33:00) [58]> [35] Артем (11.01.08 16:24)
> еще раз, возможно, повторюсь:
>
> в моем проекте всего 2 exe-файла.
> первый - сохраняет настройки, выполняет необходимые основные
> операции и т.д., после чего вытаскивает из себя заранее
> приготовленный exe (№2), а также генерирует файл типа IStorage
>
> второй (№2) - "понимает", что было сделано первым за счет
> сгенерированного файла (типа IStorage)
>
> Мне нужно, чтобы этот сгенерированный файл (типа IStorage)
> зашивался к второму exe-шнику и он ((exe-шник)) его мог
> извлекать.
А теперь, внимание вопрос: А зачем извлекать, а не поставлять сразу 2 екзешника? Или просто не извращаться и запихнуть весь исполняемый код в один проект и откомпилировать заново???
Dennis I. Komarov (2008-01-11 16:31:00) [59]> [35] Артем (11.01.08 16:24)
- Делаешь ехе который при первом запуске делает все что тебе надо для юзера.
- Делаешь ехе которуй генерит IStorage согласно манипуляиям супер-юзера (а вообще я бы возложил эту обязанность на тебя. Это и будет лиц. ключем)
- На какого IStorage зашивать в exe - я так и не понял...
Артем (2008-01-11 16:24:00) [60]еще раз, возможно, повторюсь:
в моем проекте всего 2 exe-файла.
первый- сохраняет настройки, выполняет необходимые основные операции и т.д., после чего вытаскивает из себя заранее приготовленный exe (№2), а также генерирует файл типа IStorage
второй (№2)- "понимает", что было сделано первым за счет сгенерированного файла (типа IStorage)
Мне нужно, чтобы этот сгенерированный файл (типа IStorage) зашивался к второму exe-шнику и он ((exe-шник)) его мог извлекать.