Форум
Написать нам
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: as-master  
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » ОБНОВЛЕНИЕ ПРОГРАММ (Автоматическая проверка и загрузка обновлений по интернет)
ОБНОВЛЕНИЕ ПРОГРАММ
as-masterДата: Вторник, 27 Марта 2007, 08:56 | Сообщение # 1
Группа: Удаленные





Я совсем уже обнаглел. Понимаю smile
Но всё-таки давайте обсудим - тема уж больно интересная.

Для начала про загрузку обновлений говорить не станем - только про проверку.
Представим себе, что наша программа, как в лучших домах Лондона,
соединяется с неким URL, находит там нечто (ЧТО? - х.з.) и на основании
этого нечто сообщает вам: доступно обновление, версия такая-то, дата
такая-то, размер обновлений такой-то.

Есть у кого-нибудь идеи?

PS. Сейчас придет Yuriy и скажет: "Могу модуль написать" :)

 
OmarДата: Вторник, 27 Марта 2007, 12:34 | Сообщение # 2
Группа: Удаленные





Я так понимаю это для тех проектов, которые сделаны на MMB.

Я конечно новичок, но по моему без плагина или модуля здесь не обойтись.

Юра, Дима ааааууууууу.

 
MangozДата: Вторник, 27 Марта 2007, 14:58 | Сообщение # 3
Ветеран форума
Группа: Проверенные
Сообщений: 215
Репутация: 1
Награды: 2
Статус: Offline
Автор данного сайта http://jcp.narod.ru/projects/index.html#radio
Разработал Радиоприёмник, если я не ошибаюсь у него же и автообновление проги... Может у него спросить, как он это делает?
Точно не помню, вроде было у него обновление в проге!?


MMB. Найдём всё!
 
as-masterДата: Вторник, 27 Марта 2007, 16:42 | Сообщение # 4
Группа: Удаленные





Ну так вот у него на сайте и есть такая приблуда,
называется Servant 0.1.0.6, ее функции, в частности:

InetGet - получить файл из Сети.
InetGetSize - определить размер файла, размещённого в Сети.
InetGetShow - получить файл из сети, отображая процесс копирования.

http://jcp.narod.ru/projects/servant.htm

Молодец мужик - нечего сказать!
А тебе, Mangoz, спасибо за наводочку smile
На досуге нужно будет обязательно все внимательно посмотреть.

 
YURIYДата: Вторник, 27 Марта 2007, 16:55 | Сообщение # 5
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (as-master)
PS. Сейчас придет Yuriy и скажет: "Могу модуль написать" :)

Предлагаю сделать модуль! biggrin Всё просто. Например, ты на сайт положил файл http://mmbuilder.ru/update.txt . Он имеет следующий вид (к примеру):

27.03.2007|50 KB|http://mmbuilder/files/update.dat

Модуль скачивает этот файл (update.txt) на комп юзера, ты открываешь его с помощью MMB и «расчленяешь» на части (из моего примера видно эти части: дата обновления, размер, ссылка для закачки обновлений). Затем, если обновления у юзера старее, чем на сайте - закачиваешь, опять-таки модулем файл update.dat и заменяешь старый update.dat на новый.

Идёт?



Вечная память Андрею Сергееву!
 
as-masterДата: Вторник, 27 Марта 2007, 21:17 | Сообщение # 6
Группа: Удаленные





Quote (Yuriy)
Всё просто. Например, ты на сайт положил файл

Удивительное дело - мы с тобой одинаково думаем!
Примерно так я себе и представлял, что прога должна скачиватьтекстовый файл,
в котором по строкам или как ты предлагаешь имеется вся инфа об обновлении.
А уж на основании её я сделаю без вопросов smile

Только вот мне думалось, что такой простой модуль сделать не так уж и просто smile

Дело в том, что у ДжанКу, как всегда, модуль слишком навороченный, а это
как правило не бывает нужным. Так что зачем мне вставлять в проект 150-200 кило,
когда можно всего 20.

Неужели сделаешь?...

 
YURIYДата: Среда, 28 Марта 2007, 07:55 | Сообщение # 7
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (as-master)
Неужели сделаешь?...

Раз плюнуть! Вот только прийду с колледжа...



Вечная память Андрею Сергееву!
 
as-masterДата: Среда, 28 Марта 2007, 09:02 | Сообщение # 8
Группа: Удаленные





Мне, как всегда, не горит.
Ты знаешь, что я люблю лучше недельку подождать,
но зато чтоб работа была доведена до ума.
 
JADDGEДата: Четверг, 29 Марта 2007, 13:12 | Сообщение # 9
Новый участник
Группа: Пользователи
Сообщений: 1
Репутация: 0
Награды: 0
Статус: Offline
Такая же идея по обновлению программ используется почти во всех программах в том числе Антивирус Касперского:)
 
as-masterДата: Четверг, 29 Марта 2007, 15:56 | Сообщение # 10
Группа: Удаленные





В таком случае проблема лишь одна: скачать из сети
нужный нам файлик и скопировать его на диск.
А уж на основании вынутой из него инфы наша прога
чё угодно скажет и сделает smile
 
YURIYДата: Четверг, 29 Марта 2007, 20:56 | Сообщение # 11
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (as-master)
Мне, как всегда, не горит.Ты знаешь, что я люблю лучше недельку подождать,но зато чтоб работа была доведена до ума.

Держи! Пока даю на форуме, в официальном виде не выкладываю, так как у тебя могут быть какие пожелания по улучшению нового модуля.

В архиве пример и файл модуля. Последний не забудь внедрить в проект.

И ещё: обрати внимание на то, что в поле "Сохранить как" надо писать не папку, куда будет загружен файл, а ещё и его имя! Как в нашем случае - update.txt.

Жду!

Прикрепления: 53148231.zip (16.5 Kb)



Вечная память Андрею Сергееву!
 
VictorДата: Четверг, 29 Марта 2007, 21:59 | Сообщение # 12
MMB Club
Группа: Проверенные
Сообщений: 15
Репутация: 1
Награды: 0
Статус: Offline
Я нашел небольшой недостаток: если попробовать скачать файл в автономном режиме то программа зависает, поэтому неплохо было бы сделать сначала проверку подключения, а уже потом производить закачку.
 
as-masterДата: Пятница, 30 Марта 2007, 07:54 | Сообщение # 13
Группа: Удаленные





Quote (Victor)
неплохо было бы сделать сначала проверку подключения,
а уже потом производить закачку

Еще не проверял - с утра на свежую голову.
Но с этими словами согласен заочно.

Добавлено (30 Марта 2007, 07:54)
---------------------------------------------
При наличии коннекта всё работает супер!
Сделал кнопку "Проверить обновления" с таким примерно сценарием:

param$='HIDE,WAIT '+url$+'#'+save$
Run("<Embedded>\FastUpdating v1.0.exe","param$")
Pause("1000")
currentver$='1.8'
ver$=StrFromFile(save$,1,1)
If (ver$<>'') Then
If (currentver$=ver$) Then
mess$='Ваша версия программы является самой последней версией!'
MessageEx("Проверка обновлений","mess$")
Else
mess$='"Доступна для скачивания версия программы 1.9. Хотите загрузить?",36'
MessageEx("Проверка обновлений","mess$")
** Тут еще сценарий недописан...
End
End

Ясно, что в других строках файла пишем информацию о дате и размере файла.

Теперь пара вопросов:

1. Может ли качать данный модуль файлы zip-архивов и других расширений?
2. Как узнать, что загрузка файла завершена? Или просто пока она не завершится,
скрипт дальше команды Run не пойдет?

 
YURIYДата: Пятница, 30 Марта 2007, 15:27 | Сообщение # 14
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Victor)
Я нашел небольшой недостаток: если попробовать скачать файл в автономном режиме то программа зависает, поэтому неплохо было бы сделать сначала проверку подключения, а уже потом производить закачку.

Не будет файла, модуль напишет ошибку. Чтобы программа не висла, нужно убрать параметр WAIT, используемый при запуске модуля.

Quote (as-master)
1. Может ли качать данный модуль файлы zip-архивов и других расширений?

Какие хочешь качай!

Quote (as-master)
2. Как узнать, что загрузка файла завершена? Или просто пока она не завершится,скрипт дальше команды Run не пойдет?

Никак. Вероятнее всего, что скрипт пойдёт дальше после закрытия модуля.

Лучше им качать масенькие файлики. Типа как в примере.

Пока не могу придумать способ передачи данных из модуля в проект MMB. Хотите, сделаю через реестр. А после завершения модуля удалю запись?



Вечная память Андрею Сергееву!
 
as-masterДата: Пятница, 30 Марта 2007, 15:40 | Сообщение # 15
Группа: Удаленные





Quote (Yuriy)
Не будет файла, модуль напишет ошибку

В смысле, ты уже внедрил в модуль какое-то специфичное сообщение?
Какое?

Quote (Yuriy)
Лучше им качать масенькие файлики

Само собой. А зип архив можно скачать и такой командой,
минуя модуль:

Run("http://www.mmbuilder.ru/prog/materialisator.zip","")

Quote (Yuriy)
Вероятнее всего, что скрипт пойдёт дальше после закрытия модуля

Ну это-то можно и проверить.
Только вот если убрать параметр WAIT, как ты советуешь,
то что-нибудь изменится?

Quote (Yuriy)
Пока не могу придумать способ передачи данных из модуля в проект MMB

Наверное, это и не нужно...

 
toizyДата: Пятница, 30 Марта 2007, 18:26 | Сообщение # 16
Группа: Удаленные





Quote (Yuriy)
Пока не могу придумать способ передачи данных из модуля в проект MMB

Сделай в модуле одну экспортируемую функцию, если сможешь. А потом я тебе скажу, что делать.
 
YURIYДата: Пятница, 30 Марта 2007, 19:28 | Сообщение # 17
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (toizy)
Сделай в модуле одну экспортируемую функцию, если сможешь.

Не сможу... sad

Но видел такие "чудеса", которые возвращают в константу CBK_ReturnVal некоторые значения. А как, я не знаю.



Вечная память Андрею Сергееву!
 
toizyДата: Пятница, 30 Марта 2007, 20:12 | Сообщение # 18
Группа: Удаленные





Quote (Yuriy)
Не сможу...

Почему?

Quote (Yuriy)
Но видел такие "чудеса", которые возвращают в константу CBK_ReturnVal некоторые значения. А как, я не знаю.

С этого места по-подробнее smile
 
YURIYДата: Пятница, 30 Марта 2007, 20:16 | Сообщение # 19
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (as-master)
В смысле, ты уже внедрил в модуль какое-то специфичное сообщение?Какое?

В HiAsm они изначально задуманы. Если нет файла - Can't open URL! Если нет связи с инетом - I can not connect to Internet! Если так важно - могу изменить фразы или убрать сообщения вообще.

Quote (as-master)
Ну это-то можно и проверить.Только вот если убрать параметр WAIT, как ты советуешь,то что-нибудь изменится?

Посмотрел: будет WAIT или не будет, скрипт сразу после старта закачки (запуска модуля) пойдёт дальше, то есть, фиг узнаешь, когда закончилась закачка. Потому и хорошо качать мелкие файлы - сразу скачаются.

Quote (toizy)
Сделай в модуле одну экспортируемую функцию, если сможешь. А потом я тебе скажу, что делать.

На тебя надежда, Дима! Давно хотел передавать в MMB значения!

Добавлено (30 Марта 2007, 20:16)
---------------------------------------------

Quote (toizy)
Почему?

В HiAsm нет такой функции, а сам не умею.

Quote (toizy)
С этого места по-подробнее

Приведённый выше

Quote (as-master)
Ну так вот у него на сайте и есть такая приблуда,называется Servant 0.1.0.6,

именно так и передаёт значения в MMB.



Вечная память Андрею Сергееву!
 
as-masterДата: Пятница, 30 Марта 2007, 21:17 | Сообщение # 20
Группа: Удаленные





Quote (Yuriy)
о есть, фиг узнаешь, когда закончилась закачка.

Как не узнаешь? А командой FileExist() ?

Quote (Yuriy)
Если так важно - могу изменить фразы или убрать сообщения вообще

Переведи на русский, только киррилическим шрифтом плиз!

Quote (toizy)
возвращают в константу CBK_ReturnVal

С этим надо НЕПРЕМЕННО разобраться!
Что и поручаю вам - Yuriy и toizy.

 
YURIYДата: Пятница, 30 Марта 2007, 21:25 | Сообщение # 21
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (as-master)
Как не узнаешь? А командой FileExist() ?

Дульки. Файл появляется сразу в момент его закачки.



Вечная память Андрею Сергееву!
 
as-masterДата: Пятница, 30 Марта 2007, 21:36 | Сообщение # 22
Группа: Удаленные





Quote (Yuriy)
Дульки. Файл появляется сразу в момент его закачки

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

Но это только для текстовых файлов. На всякий случай, проверочка.

 
toizyДата: Суббота, 31 Марта 2007, 13:01 | Сообщение # 23
Группа: Удаленные





Quote (as-master)
а тогда выдергиваем строку

а если файл блокируется на время закачки?
 
as-masterДата: Воскресенье, 01 Апреля 2007, 01:46 | Сообщение # 24
Группа: Удаленные





Quote (toizy)
а если файл блокируется на время закачки?

С фига ли гости понаехали?

 
toizyДата: Воскресенье, 01 Апреля 2007, 22:54 | Сообщение # 25
Группа: Удаленные





Quote (as-master)
С фига ли гости понаехали?

Что-то я не понял. Это ты к чему и зачем?
 
as-masterДата: Понедельник, 02 Апреля 2007, 06:53 | Сообщение # 26
Группа: Удаленные





Quote (toizy)
С фига ли гости понаехали?

Я имел в виду - с фига ли файл блокируется?
Мне думается, строку все равно уж можно оттуда вынуть.

 
MrSherLoKДата: Воскресенье, 22 Апреля 2007, 02:31 | Сообщение # 27
Любопытный
Группа: Пользователи
Сообщений: 31
Репутация: 1
Награды: 0
Статус: Offline
Предлагаю такую проверку подключения сделать:(Правда с использованием модуля servant.exe см. вверх)

fileload$='http://www.mmb-soft.nm.ru/plugins/messenger.zip'
exe$='<Embedded>\servant.exe'
filedest$='C:\temp\servant.exe'
Run("exe$","WAIT "InetGetSize" "http://www.yandex.ru"")
Pause("3000")
If (CBK_ReturnVal=0) Then
**Тутачки будет действия, если нету подключения...

Else
Run("exe$","WAIT "InetGetSize" "fileload$"")
Pause("3000")
If (CBK_ReturnVal=0) Then
** А тутачки, если нету файла...

Else
** Тут-начинается закачка...
Run("exe$","WAIT "InetGet" "fileload$" "C:\temp\servant.exe"")
End
End

P.S.: Правда глюк с переменными у меня получился, но так все должно выглядеть...

 
accessДата: Понедельник, 23 Апреля 2007, 18:42 | Сообщение # 28
Новый участник
Группа: Пользователи
Сообщений: 2
Репутация: 0
Награды: 0
Статус: Offline
Quote (Yuriy)
В архиве пример и файл модуля. Последний не забудь внедрить в проект.
И ещё: обрати внимание на то, что в поле "Сохранить как" надо писать не папку, куда будет загружен файл, а ещё и его имя! Как в нашем случае - update.txt.
Жду!
Прикрепленный файл: 53148231.zip (16 Kb)

Доброго времени суток вам!
У меня возник вопрос по поводу выложенного файла, пытаюсь разобраться как зделать несколько одновременных загрузок при нажатии на кнопку, и ни чего у меня не получается. Подскажите пожалуйста как (по примеру ввыложенного файла) зделать чтобы при нажатии на кнопку копировалось несколько файлов сразу (если это возможно).

 
MrSherLoKДата: Понедельник, 23 Апреля 2007, 20:06 | Сообщение # 29
Любопытный
Группа: Пользователи
Сообщений: 31
Репутация: 1
Награды: 0
Статус: Offline
Вот пример с загрузкой 2 файлов:

Добавлено (23 Апреля 2007, 20:06)
---------------------------------------------
Можно объявлять скока хошь переменных, главное, чтобы не зависло
P.S.: Если хошь, чтобы загрузка шла, как в Download Master'e, то надо немного подумат над этим проектом... wink biggrin happy

Прикрепления: 97105374.mbd (17.2 Kb)
 
accessДата: Понедельник, 23 Апреля 2007, 21:11 | Сообщение # 30
Новый участник
Группа: Пользователи
Сообщений: 2
Репутация: 0
Награды: 0
Статус: Offline
Quote (MrSherLoK)
Вот пример с загрузкой 2 файлов:

ОГРОМНОЕ СПАСИБО !!!
Это именно то что мне надо было!
 
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » ОБНОВЛЕНИЕ ПРОГРАММ (Автоматическая проверка и загрузка обновлений по интернет)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: