Вот как я проверяю, доступна ли новая версия программы на сервере, используя Компонент Indy Client TIdHTTP.
Предположим, вы загрузили новую версию своего приложения. Помимо файла установки или zip, содержащего ваше приложение, загрузите текстовый файл с одной строкой (applicationBuildData.txt), который содержит значение сборки (integer), разделитель (;) и, возможно, некоторые другие данные (номер версии, имя программы и т. Д.). Например:
20170215; ProgamName rel. 1.2.
Это единственная строка в файле applicationBuildData.txt. Вот пример кода (я изменил мой исходный код немного позже):
void __fastcall TfrmDialog::Button1Click(TObject *Sender)
{
TIdHTTP *IdHTTP1 = new TIdHTTP(this);
// let's say this is current app build (on user's side)
int currAppBuild = 20170101;
int prodBuildNew = 0;
UnicodeString prodVersionNew;
UnicodeString version_str;
try {
// get content of applicationBuildData.txt into string
version_str = IdHTTP1->Get("http://www.your-site.com/applicationBuildData.txt");
prodBuildNew = StrToInt(version_str.SubString(1, version_str.Pos(";") - 1).Trim());
prodVersionNew = version_str.SubString(version_str.Pos(";") + 1, 100).Trim();
}
catch (...)
{
prodBuildNew = 0;
prodVersionNew = "???";
}
if (prodBuildNew == 0) {
// ...faild to get data from server...
// display message
}
else if (prodBuildNew > currAppBuild) {
// new version is available
// display message
}
else {
// application version is up to date
// display message
}
delete IdHTTP1;
}
В этом примере текущий номер сборки меньше, чем закачано номер сборки, и он будет указывать пользователю, что новая версия доступна.
Примечание: currAppBuild обычно представляет собой глобальную константу или глобальную переменную, представляющую версию сборки. После обнаружения новой версии на сервере вы можете либо загрузить инсталляцию/zip, либо просто отобразить сообщение и позволить пользователю перейти на ваш сайт и загрузить новую версию вручную.
Edit: Как загрузить файл на локальный диск с помощью TIdHTTP компонента, проверьте следующее видео:
https://www.youtube.com/watch?v=fcN8K3R4iZE
[Этот вопрос] (http://stackoverflow.com/questions/277514/delphi-how-do-you-auto-update-your-applications) может помочь. –
Пожалуйста, дайте мне любую ссылку .... или любой компонент, который помог мне достичь этого, например, clickonce ..etc. Не знаю много о Embarcadero. –