我是Embarcadero C++的初學者,如果我的應用程序是在Embarcadero C++中開發的並安裝在客戶端機器上,那麼如果新的更新可用,我的應用程序如何通知用戶?如果用戶點擊yes按鈕,那麼它將首先下載應用程序然後安裝它。Embarcadero C++:如果有新的更新可用,如何通知用戶?
如果有人有任何想法,請讓我知道。
我是Embarcadero C++的初學者,如果我的應用程序是在Embarcadero C++中開發的並安裝在客戶端機器上,那麼如果新的更新可用,我的應用程序如何通知用戶?如果用戶點擊yes按鈕,那麼它將首先下載應用程序然後安裝它。Embarcadero C++:如果有新的更新可用,如何通知用戶?
如果有人有任何想法,請讓我知道。
下面是我如何檢查服務器上是否有新版本的程序可用,使用 Indy客戶端組件TIdHTTP。
比方說,你已經上傳了一個新版本的應用程序。除了包含應用程序的安裝文件或zip文件外,還需要上傳一行文本文件(applicationBuildData.txt),其中包含構建值(整數),分隔符(;)以及可選的其他數據(版本號,程序名等)。例如:
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或僅顯示消息,並讓用戶訪問您的站點並手動下載新版本。
編輯:如何將文件下載到使用TIdHTTP組件本地磁盤,請檢查下面的視頻:
[這個問題](http://stackoverflow.com/questions/277514/delphi-how-do-you-auto-update-your-applications)可能會有所幫助。 – 2017-02-15 07:15:42
請給我任何參考....或任何組件幫助我實現這一點clickonce ..等等。對Embarcadero不太瞭解。 –