Проверка наличия новой версии проги
1) При запуске моя программа должна проверить, есть ли на моём сайте (или в локальной сети) ее новая версия;
2) Если есть её новая версия, то показать, какие изменения в новой версии;
3) Если есть её новая версия, то закачать новую версию;
Может кто-нибудь может подсказать, как это осуществить?
А лучше дать пример исходников, или ссылку на примеры исходников.
Заранее спасибо.
Задачи:
1) При запуске моя программа должна проверить, есть ли на моём сайте (или в локальной сети) ее новая версия;
2) Если есть её новая версия, то показать, какие изменения в новой версии;
3) Если есть её новая версия, то закачать новую версию;
Может кто-нибудь может подсказать, как это осуществить?
А лучше дать пример исходников, или ссылку на примеры исходников.
Заранее спасибо.
Продумай механизм с помощью которого ты будешь информировать свою программу о обновлениях и вперед. Это может быть РНР-скрипт на сервере, хмл-файл на фтп, которые должны предоствить пользователю нужную инфу. Ты по определенному тобой событию выполняешь проверку и делаешь то что нужно. Соответственно в твоей программе должна быть версионность - что бы можно было что либо проверять. Это может быть установлено в свойствах проекта билдера, или можешь использовать свой механизм экспортируя функции возврата версии.
Продумай механизм с помощью которого ты будешь информировать свою программу о обновлениях и вперед. Это может быть РНР-скрипт на сервере, хмл-файл на фтп, которые должны предоствить пользователю нужную инфу. Ты по определенному тобой событию выполняешь проверку и делаешь то что нужно. Соответственно в твоей программе должна быть версионность - что бы можно было что либо проверять. Это может быть установлено в свойствах проекта билдера, или можешь использовать свой механизм экспортируя функции возврата версии.
Спасибо за ответ...
Да, я планировал хранить все в хмл- или в тхт-файле на фтп или в локальной сети...
Но к сожалению у меня нет практики работы с сетевыми компонентами... :(
Поэтому я прошу помочь мне с примерами- исходниками...
Например:
- как соединиться с другим компом (или с сайтом) и скачать оттуда хмл или тхт файл?
- как соединиться с другим компом (или с сайтом) и скачать оттуда хмл или тхт файл?
Первое что пришло в голову (и послдене наверное :) ) это на сайте иметь страницу например ver.htm чтоб получить старницу можно например компонентом NMHTTP
AnsiString HTML=NMHTTP1->Body;
Дальше ищешь ключевые слова!
Первое что пришло в голову (и послдене наверное :) ) это на сайте иметь страницу например ver.htm чтоб получить старницу можно например компонентом NMHTTP
AnsiString HTML=NMHTTP1->Body;
Дальше ищешь ключевые слова!
Можно и так. Но проще всеже использовать структурированные файлы. Удобней ИМХО.
З.Ы
foxby
На счет исходников - для этого есть специальный раздел сайта - там ты можешь найти необходимый тебе исходный код здесь. А можешь и не найти :D. Идеи тебе дали - а насчет того что не работал - ну так начинай кто мешает. Все с чем нибудь когда нибудь не работали :) Нудить "да-а-йте исходник, сами мы не местные..." не нужно.
Можно и так. Но проще всеже использовать структурированные файлы. Удобней ИМХО.
З.Ы
foxby
На счет исходников - для этого есть специальный раздел сайта - там ты можешь найти необходимый тебе исходный код здесь. А можешь и не найти :D. Идеи тебе дали - а насчет того что не работал - ну так начинай кто мешает. Все с чем нибудь когда нибудь не работали :) Нудить "да-а-йте исходник, сами мы не местные..." не нужно.
Я впрочем я и не просил исходник готового софта, мне нужна была только "точка отсчета" с примерами типа HELP... Ведь ты тоже когда-то рылся в чужих примерах... :)
Но все равно спасибо за наводки!
Я нашел подходящее решение для своей задачи:
#include "Urlmon.h"
URLDownloadToFile( NULL, sURL.c_str(), sVer.c_str(), 0, NULL);
... может кому пригодится...
Я впрочем я и не просил исходник готового софта, мне нужна была только "точка отсчета" с примерами типа HELP... Ведь ты тоже когда-то рылся в чужих примерах... :)
Но все равно спасибо за наводки!
Я нашел подходящее решение для своей задачи:
#include "Urlmon.h"
URLDownloadToFile( NULL, sURL.c_str(), sVer.c_str(), 0, NULL);
... может кому пригодится...
Прежде чем качать, обязательно проверяй доступность хоста хотябы простым пингом, или обрабатывай ошибку подклучения.
Прежде чем качать, обязательно проверяй доступность хоста хотябы простым пингом, или обрабатывай ошибку подклучения.
Вот засада :( Не компилится:
[Linker Error] Unresolved external 'URLDownloadToFileA' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\TEST.OBJ
Может есть у кого подсказка для решения?
Мой код:
{
DWORD hrHRESULT;
AnsiString sURL = "\\\\192.168.234.199\\TEST\\";
AnsiString sVer = "C:\\version.txt";
hrHRESULT = URLDownloadToFile( NULL, sURL.c_str(), sVer.c_str(), 0, NULL);
}
Вот засада :( Не компилится:
[Linker Error] Unresolved external 'URLDownloadToFileA' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\TEST.OBJ
Может есть у кого подсказка для решения?
Мой код:
{
DWORD hrHRESULT;
AnsiString sURL = "\\\\192.168.234.199\\TEST\\";
AnsiString sVer = "C:\\version.txt";
hrHRESULT = URLDownloadToFile( NULL, sURL.c_str(), sVer.c_str(), 0, NULL);
}
Посказка только одна - используй справку и поиск по форуму - ключевое слово WinInet. Чтобы твоя программа заработала тебе необходимо:
1. Прилинковать статически библиотеку wininet.lib или же загрузить динамически одноименную длл.
2. Установить соединение.
3. Открыть сессию.
4. Вызвать твою функцию с идентификатором сессии.
5. Не забыть включить wininet.h
6. Закрыть сессию.
Примеры как это сделать на форуме есть. Юзай поиск.