2017-02-15 7 views
1

私はEmbarcadero C++の初心者です。私のアプリケーションがEmbarcadero C++で開発され、クライアントマシンにインストールされている場合、新しいアップデートが利用可能かどうか私のアプリケーションからどのように通知されますか?ユーザーが「はい」ボタンをクリックすると、まずアプリケーションをダウンロードしてインストールします。Embarcadero C++:新しいアップデートが利用可能かどうかをユーザに通知するには?

誰かがアイデアを持っているかどうか教えてください。

+1

[この質問](http://stackoverflow.com/questions/277514/delphi-how-do-you-you-auto-update-your-applications)が役に立つかもしれません。 –

+0

私に参照を与えてください....またはclickonceなどのようにこれを達成するのに役立つコンポーネント。 Embarcaderoについてよく知りません。 –

答えて

1

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コンポーネントを使用してローカルディスクにファイルをダウンロードする方法は、以下のビデオをチェックしてください。

https://www.youtube.com/watch?v=fcN8K3R4iZE

関連する問題