Форум: "Начинающим";
Текущий архив: 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