Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1198588345
icome
2007-12-25 16:12
2008.02.03
Три задачи на зачёт - Сделай праздник мне на Новый год!


2-1199471551
vegarulez
2008-01-04 21:32
2008.02.03
про sql (access). Как селектом выбрать Limit 10 или first 10...


15-1198921024
asd
2007-12-29 12:37
2008.02.03
принцип работы телефона(обычнрго)


2-1199473874
ВВВ2
2008-01-04 22:11
2008.02.03
Передача record a в форму


4-1182958417
sergeii
2007-06-27 19:33
2008.02.03
как можно послать локальному активному пользователю сообщение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский