私はEmbarcadero C++の初心者です。私のアプリケーションがEmbarcadero C++で開発され、クライアントマシンにインストールされている場合、新しいアップデートが利用可能かどうか私のアプリケーションからどのように通知されますか?ユーザーが「はい」ボタンをクリックすると、まずアプリケーションをダウンロードしてインストールします。Embarcadero C++:新しいアップデートが利用可能かどうかをユーザに通知するには?
誰かがアイデアを持っているかどうか教えてください。
私はEmbarcadero C++の初心者です。私のアプリケーションがEmbarcadero C++で開発され、クライアントマシンにインストールされている場合、新しいアップデートが利用可能かどうか私のアプリケーションからどのように通知されますか?ユーザーが「はい」ボタンをクリックすると、まずアプリケーションをダウンロードしてインストールします。Embarcadero C++:新しいアップデートが利用可能かどうかをユーザに通知するには?
誰かがアイデアを持っているかどうか教えてください。
IndyクライアントコンポーネントTIdHTTPを使用して、新しいバージョンのプログラムがサーバーで利用可能かどうかを確認します。
アプリケーションの新しいバージョンをアップロードしたとします。あなたのアプリケーションを含むインストールまたはzipファイルのほかに、ビルド値(整数)、区切り文字(;)、およびオプションでいくつかの他のデータ(バージョン番号、プログラム名など)を含む1行のテキストファイル(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-you-auto-update-your-applications)が役に立つかもしれません。 –
私に参照を与えてください....またはclickonceなどのようにこれを達成するのに役立つコンポーネント。 Embarcaderoについてよく知りません。 –