Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];
ВнизДобавить в 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;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.046 c