Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2011, 00:53   #1
Red_Sam
Новичок
Джуниор
 
Регистрация: 09.10.2011
Сообщений: 3
По умолчанию Склеивание 2-х приложений в 1 exe-файл

Здравствуйте
Предыстория: Пользователи попросили меня скачать кучу медиа материалов с сайта. Было принято решение написать простенькую прогу которая выдергивает из HTML ссылки на файлы и отправляет их в Download Master.
Все работает нормально.
Но естественно требуется установка Download Master-a.
Вопрос: Как можно интегрировать Download master в мой проект чтобы не заморачивать пользователя установкой доп софта?
PS:
1. Поправьте меня если неправильно озаглавил тему.
2. Не надо говорить что установить download master не так и сложно, просто спортивный интерес.
Red_Sam вне форума Ответить с цитированием
Старый 09.10.2011, 01:04   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Вопрос, скорее, к разработчикам Download Master: "Предусмотрена ли интеграция продукта в другие приложения?. А если да, то где можно взять интерфейс?"
Кто ж кроме них это может сказать.
Прик вне форума Ответить с цитированием
Старый 09.10.2011, 01:20   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

1.
DM поддерживает "плугинизацию" на основе интерфейсов, но только ввиде dll.
По этому, возможна только вот такая связка:
Ваша программа <--Ваш плагин для DM--> - Download Master

2.
собственно зачем? У DM есть плагины к браузерам(Опера,хром,IE,FreFox), которые сами прекрасно умеют находить все ссылки на странице(пр. клик > Загрузить ВСЕ при помощи DM), определять конечные расширения в ссылках(*.zip и тд.) и давать пользователю выбор, что загрузить а что нет.

Но если уж так надо, то будет куда проще определять установлен ли DM, если да, то предлогать юзеру установить в DM ваш плагин, перезапустить DM, работать с DM. DM не установлен у юзера? Отлично, предлогаем юзеру выбор, установить его(обьяснив зачем и почему).

Последний раз редактировалось Человек_Борща; 09.10.2011 в 01:32.
Человек_Борща вне форума Ответить с цитированием
Старый 09.10.2011, 02:01   #4
Red_Sam
Новичок
Джуниор
 
Регистрация: 09.10.2011
Сообщений: 3
По умолчанию

Человек_Борща
Проверка наличия DM стоит.
Может не очень красивый но выход вижу в следующем - т.к практика показала что DM "портативный", можно засунуть его в инсталяционный пакет с моим ЕХЕ и поиграться с ключами запуска DM для тихой загрузки... Только прогресс бара не хватает
Red_Sam вне форума Ответить с цитированием
Старый 09.10.2011, 02:16   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

идиотизм. Зачем вам переустанавливаю юзеру DM? А вдруг у вас не актуальная версия?
Может проще написать плагин для dm и как я уже говорил, предложить его установку юзеру?

кака вариант:
Создаём интерфейс в своей программе(другими свловами поддержка плагинов).
Пишем плагин для download master'а таким образом чтобы при загрузке, ваша программа проверяла наличие Mapped файла(читаем про Memory Mapped Files), а тот в свою очередь передавал указатель на уже активный интерфейс для вашей программы.

Зачем это надо?
DM , не может динамически загружаить/выгружать плагины. Он это делает только при перезапуске/запуске. По этому запустившись, ваш плагин должен создать mapped файл в который вложить указатель на созданный интерфейс для вашей программы. При запуске ваша программа проверяет наличего этого mapped файла, открывает его, читает указтель на интерфейс, и и подключает указатель интерфейса к себе(Может такое и не возможно, но...).
Таким образом ваш плагин для DM будет работать в обе стороны одновременно, получая сообщения от DM и передавая его в вашу программу, и наоборот от вашей программы в DM. 2 потока один для вас, второй для dm(включив фантазию, можно и асинхронность прикрутить)...

Темболее, плагин не будет зависеть от того, запущена ваша программа или нет, можно просто проверять, подключился ли плагин к вашей программе или нет. Если нет, просто игнорируем сообщения DM. А что произойдёт при запуске вашей программы, я уже описал выше.

Я считаю это более разумным выходом, нежели пихать в себя n мб, и при этом каждый раз опаздывать за разработчиками(вы тока затолкали 5.10 они уже склепали билд 5.28). Темболее, разработчикам DM может совсем не понравится, ваш способ эксплотации их ПО.

Последний раз редактировалось Человек_Борща; 09.10.2011 в 02:39.
Человек_Борща вне форума Ответить с цитированием
Старый 09.10.2011, 10:49   #6
Red_Sam
Новичок
Джуниор
 
Регистрация: 09.10.2011
Сообщений: 3
По умолчанию

Спасибо. У меня еще много вопросов по созданию плагинов но это другая тема.
Red_Sam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как компилировать файл программу в exe файл? Vuzy Помощь студентам 11 13.11.2015 18:27
exe-файл Lapo4ka Visual C++ 2 08.05.2011 23:38
Как 'засунуть' звуковой файл в EXE-шник.чтоб моя прога состояла всего из одного exe betirsolt Общие вопросы Delphi 11 18.04.2010 21:58
Из программы 1.exe создаем пустой файл 2.exe. Как из программы 1 внести API функции в программу 2? X-LEV-X Общие вопросы Delphi 7 09.03.2010 08:33
exe файл в c++ stenl1 Общие вопросы C/C++ 19 09.09.2009 00:51