Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Вниз

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

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

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

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

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

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


 
Dennis I. Komarov ©   (2008-01-11 16:53) [41]

> [39] Артем   (11.01.08 16:44)

И на этом ты еще хочешь заработать........ :(


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


> Артем


> основная программа - это программный продукт


Ты его КАК распространяешь, чудо ?)


 
Артем   (2008-01-11 17:02) [43]


> Dennis I. Komarov


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

Если есть решения моей задачи, то прошу помочь.

Повторяю основной вопрос [22], на котором мы остановились:

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

С BeginUpdateResource + UpdateResource + EndUpdateResource - с этим разберусь. Этот путь меня устраивает. К тому же есть возможность предварительно зашить в ресурс пустой файл, который будет заменяться на необходимый (на сгенерированный "abcd.stg")


 
Артем   (2008-01-11 17:02) [44]


> Ты его КАК распространяешь, чудо ?)


не понял вопроса. ты что имеешь ввиду?


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


> Артем   (11.01.08 17:02) [44]
> что имеешь ввиду?


Ты в каком "файлоорганизационном" виде доставляешь  потребителю свои "шедевры" ?


 
Артем   (2008-01-11 17:12) [46]


> Сергей М

Один exe-файл


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


> Артем   (11.01.08 17:12) [46]


Ты его, этот самый  "Один exe-файл", КОМУ поставляешь ?


 
Артем   (2008-01-11 17:24) [48]

Блин, еще раз :)

Пользователя ДВА

Один "мастер-пользователь". У него этот программный продукт. В этом программном продукте к ресурсу прицеплен другой exe-файл. "Мастер-пользователь" с помощью этого программного продукта вносит свои данные, эти данные записываются в файл типа IStorage, плюс из программного продукта извлекается второй exe-шник (тот самый, который в ресурсе лежит изначально).
Все это дело, 2 файла (exe и IStorage) копируются в папку т.н. "нового проекта".

"Конечный пользователь" получает от "мастера-пользователя" вышитый exe-файл, который работает на основе созданного "мастер-пользователем" IStorage-файл.

ВАЖНО: у конечного пользователя нет основной программы, которой был создан IStorage-файл. Поэтому его exe-файл обращается к IStorage-файлу, получает необходимые данные и преобразовывает приложение на основе этих данных.


 
Dib@zol ©   (2008-01-11 17:27) [49]

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

Хм. И что с того??? Нахрена паковать, ты так и не объяснил... Более того, любой юзер свободно сможет эту твою "стоящую денег" извлекаемую прогу скопировать себе во время работы. И тут уже мало что поможет. Тем более, почему никто не сказал, что на такой мягко говоря ректальный алгоритм не будет ругаться антивирь?


 
Dib@zol ©   (2008-01-11 17:28) [50]

> Блин, еще раз :)
>
> Пользователя ДВА
>
> Один "мастер-пользователь". У него этот программный продукт.
> В этом программном продукте к ресурсу прицеплен другой exe-
> файл. "Мастер-пользователь" с помощью этого программного
> продукта вносит свои данные, эти данные записываются в файл
> типа IStorage, плюс из программного продукта извлекается
> второй exe-шник (тот самый, который в ресурсе лежит изначально)
> .
> Все это дело, 2 файла (exe и IStorage) копируются в папку
> т.н. "нового проекта".
>
> "Конечный пользователь" получает от "мастера-пользователя"
> вышитый exe-файл, который работает на основе созданного
> "мастер-пользователем" IStorage-файл.
>
> ВАЖНО: у конечного пользователя нет основной программы,
> которой был создан IStorage-файл. Поэтому его exe-файл обращается
> к IStorage-файлу, получает необходимые данные и преобразовывает
> приложение на основе этих данных.


А тогда почему бы мастер-пользователю не получить-таки две проги сразу отдельно? Какие-то религиозные соображения? :)


 
Артем   (2008-01-11 17:33) [51]


> А тогда почему бы мастер-пользователю не получить-таки две
> проги сразу отдельно?


Он их и получает. Просто один зашит в другую (прицеплен к ресурсу).

Сложно объяснять "на пальцах", поэтому такие недоуменя возникают...


>Более того, любой юзер свободно сможет эту твою "стоящую
> денег" извлекаемую прогу скопировать себе во время работы


НЕЕЕТ! Не может! Так как это не основная программа, а ее отделенная часть.

Это как в авиастроении :) Модуль отсоединяется от корабля. Имея управление модулем, ты никак не можешь получить доступ к управлению кораблем.


 
Dib@zol ©   (2008-01-11 17:54) [52]

> Он их и получает. Просто один зашит в другую (прицеплен
> к ресурсу).

Что он их получает, мы уже поняли. А можно нескромный вопрос: какова ЦЕЛЬ такого подхода?


 
Dennis I. Komarov ©   (2008-01-11 18:09) [53]

Не хотел бы попасть к хирургу, который апендицит через анус извлекает, да еще вилкой :)


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


> Блин, еще раз :)Пользователя ДВА


Угу

И ты в своем инсталляционном шедевре спрашиваешь у пользователя, мол, ты кто долбаный ты пользователь - номер один ты или номер ты два \\)))


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

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

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

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


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

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


 
Dib@zol ©   (2008-01-11 21:19) [57]

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

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


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

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


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


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



> файл типа Istorage


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

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


 
Dib@zol ©   (2008-01-11 21:30) [60]

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

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

Вуаля.


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


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


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

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

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


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


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


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

см. [1]

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


 
Dib@zol ©   (2008-01-11 21:36) [63]

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

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

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


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


> Сначала пропиши в ресурсный файл №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 же можно было его вынуть и считать.


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


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


сравниваем с


> в exe другой exe


Гониво)


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


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


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

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


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


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


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


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


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


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

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

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


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


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


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


 
Dib@zol ©   (2008-01-11 21:47) [70]

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


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


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


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


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


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


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

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


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

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

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


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


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


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


 
Dib@zol ©   (2008-01-11 21:57) [75]

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

пц. Чёрт с тобой. пришивай эту ДЛЛ к проге №1, при запуске инсталлятора распаковывай её, вызывай из неё нужные функции посредством LoadLibrary и GetProcAddress, запускай их, и обновляй ресы. ФСЁ!


 
Артем   (2008-01-11 21:58) [76]

Кстати, по поводу вот этого:

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


Во-первых, давайте без оскорблений. Кому надо - выходите на улицу и бейти морду прохожим. Здесь не то место.

А второе - нет, не я тупой, раз приходится в 20 вариациях объяснять одно и то же.


 
Сергей М. ©   (2008-01-11 21:59) [77]


> нужно, чтобы эта хрень мелкомягкая запускалась


У мелкомягких есть соотв. инструкция по запуску этой хрени.


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


> пц. Чёрт с тобой. пришивай эту ДЛЛ к проге №1, при запуске
> инсталлятора распаковывай её, вызывай из неё нужные функции
> посредством LoadLibrary и GetProcAddress, запускай их, и
> обновляй ресы. ФСЁ!


А скомпилировать сразу и один раз? Только один вариант: каждый раз вынимать и вызывать необходимые функции?


 
Артем   (2008-01-11 22:02) [79]


> У мелкомягких есть соотв. инструкция по запуску этой хрени.


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


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


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


Ну извиняй, барин)

Ты в чистом поле нашел пенёк и решил во что бы то ни стало снести его собственной башкой, вместо того чтобы обойти его стороной)



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

Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.62 MB
Время: 0.046 c
15-1198671211
Alkid
2007-12-26 15:13
2008.02.03
Фрактальная размерность множества


3-1190795966
Quart
2007-09-26 12:39
2008.02.03
Сохранение БД


11-1183468611
AndreyRus
2007-07-03 17:16
2008.02.03
Maximize and Restore form handling


15-1198740333
Darvin
2007-12-27 10:25
2008.02.03
Запуск русифицированной программы на локализованной Windows


2-1199922658
Александр Ш.
2008-01-10 02:50
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский