我是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不太了解。 –