Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Интересная задачка... [D6, Win2k]


Smok_er ©   (2003-01-09 00:21:00) 

Мастера, откликнетесь.
У нас на фирме требуется сделать систему автоматичского апдейта приложений.
Все это выглядит так: на сервере в интернете лежат программы. Когда какой-то пользователь запускает программу, происходит обращение к серверу, получение даты модификации файла, и, в случае несовпадения нынешней версии и версии на сервере - обновление.
Но система к сожалению не идеальна, много глюков и уже нет сил с ними бороться. Решили создать нечто новое.
В связи с этим идея:
Каким-то образом читать часть файла, получать смещение, по которому лежит информация о версии (интересует прежде всего номер билда и дата модификации), чтение этой информации и произведение соответствующих действий.

В связи с чем вопрос: как можно откопать точное расположение информации о версии файла?

Буду очень благодарен за любую информацию по данному вопросу (факи, доки, личный опыт, советы и т.д. и т.п.)

Огромное вам спасибо!


ACR   (2003-01-09 14:02:00) [1]

Информация о версии это ресурс PE файла
тебе нужно посмотреть инфу по формату PE


Bis   (2003-01-09 13:57:00) [2]

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


REA   (2003-01-09 12:31:00) [3]

Ну иногда апгрейдить нужно не только exe и dll.


KSergey   (2003-01-09 12:31:00) [4]

> smok_er (09.01.03 11:13)
> Хочется сделать раз и навсегда. Пусть и с гемором.

тогда зачем что-то делать? С гемором, как я понял, уже есть!


smok_er   (2003-01-09 12:22:00) [5]

Объясните пожалуйста вашу идею насчет текстов-ресурсов


REA   (2003-01-09 11:36:00) [6]

А если тексты-ресурсы обновлять? У них то нет версии. Можно дату проверять например, а лучше действительно типа INI что-нибудь.


smok_er   (2003-01-09 11:13:00) [7]

RV © (09.01.03 11:09)

сам так делал - поверь, гемора НАМНОГО меньше

Хочется сделать раз и навсегда. Пусть и с гемором.


smok_er   (2003-01-09 11:11:00) [8]

Т.е. имя файла вместе с адресом - http://www.server.com/program.exe


RV   (2003-01-09 11:09:00) [9]


> Anatoly Podgoretsky © (09.01.03 10:28)
> Да размести ты ини файл на сервере


сам так делал - поверь, гемора НАМНОГО меньше


smok_er   (2003-01-09 11:06:00) [10]

Хорошо, смоделируем ситуацию...
Файл лежит на сервере и занимает 2 Мб.
Я коннекчусь к серверу и получаю информацию о версии. Но ведь придется скачать полностью файл... А мне это не надо. Качать надо в том случае, если он обновился.


Romkin   (2003-01-09 10:49:00) [11]

Mike_Goblin дал самое то... подсунь нужный файл в GetFileVersionInfo и узнаешь о нем все


smok_er   (2003-01-09 10:43:00) [12]

Хотелось сделать все красиво, без дополнительных файлов. Неужели нет решения? Я нашел место, где хранится информация о версии, но естественно, смещение всегда разное. Как бы вычислить это смещение...


Anatoly Podgoretsky   (2003-01-09 10:28:00) [13]

Да размести ты ини файл на сервере


smok_er   (2003-01-09 10:18:00) [14]

Mike_Goblin © (09.01.03 10:00)

Спасибо, но это не то :(
Мне нужно считать несколько байт, определить смещение информации о версии в файле и считать несколько байт самой информации о версии.
Т.е. без закачки всей программы!


smok_er   (2003-01-09 10:03:00) [15]

Maksss (09.01.03 02:06)
yandex.ru хорошо посмотриш многое поймёш
трояны отпадают сразу , сам проверял!

Не понял, что Вы хотите сказать...


Mike_Goblin   (2003-01-09 10:00:00) [16]

http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_10053844.html#1


Maksss   (2003-01-09 02:06:00) [17]

yandex.ru хорошо посмотриш многое поймёш
трояны отпадают сразу , сам проверял!


[NIKEL]   (2003-01-09 01:33:00) [18]

....а какая разница?

ну уж самый простой способ трудно придумать... хотя
можно сделать простой txt файл(ini) который будет лежать на сервере(и вовремя обновляться) и описывать все изменения во всех программах - загрузил его и читай, что надо обновлять а что нет...


Smok_er   (2003-01-09 00:59:00) [19]

Нет, программ там целая куча (из моих слов наверное все подумали что только одна).


[NIKEL]   (2003-01-09 00:27:00) [20]

да просто именовать файлы на сервере так, чтобы имя говорило о том что это новая версия и все, каждая программа знает под каким именем она лежала на сервере и если имя не совпадает, то значит надо качать


Наверх

Титульная страница Поиск, карта сайта Написать письмо