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

Вниз

Добавить в 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;
Скачать: CL | DM;

Наверх




Память: 0.65 MB
Время: 0.019 c
15-1198589863
Prohodil Mimo
2007-12-25 16:37
2008.02.03
FastReport align в TfrxCrossView


2-1199547471
VAD*Anti Gopn!k
2008-01-05 18:37
2008.02.03
IP-адреса локальной сети.


2-1199811622
Евгений Р.
2008-01-08 20:00
2008.02.03
MDI приложение


3-1190635483
ganda
2007-09-24 16:04
2008.02.03
FIBPlus


15-1198592492
Astaldo
2007-12-25 17:21
2008.02.03
Помогите плиз