2017-02-15 13 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 Client 구성 요소 TIdHTTP을 사용하여 새 버전의 프로그램을 서버에서 사용할 수 있는지 확인하는 방법은 다음과 같습니다.

애플리케이션의 새 버전을 업로드했다고 가정 해 보겠습니다. 설치 또는 응용 프로그램이 포함 된 zip 파일 외에 빌드 값 (정수), 구분 기호 (;) 및 선택적으로 다른 데이터 (버전 번호, 프로그램 이름 등)가 포함 된 한 줄 텍스트 파일 (applicationBuildData.txt)을 업로드하십시오. 예 :

20170215; ProgamName rel. 1.2.

이 파일은 applicationBuildData.txt 파일의 유일한 행입니다. 다음 코드 샘플입니다 (I 내 원래의 코드를 약간 수정 한) :이 예에서는

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는 대개 일부 글로벌 상수이거나 빌드 버전을 나타내는 전역 변수입니다. 서버의 새 버전이 검색되면 설치/압축 파일을 다운로드하거나 메시지를 표시하고 사용자가 사이트로 이동하여 새 버전을 수동으로 다운로드하도록 할 수 있습니다.

편집 : TIdHTTP 구성 요소를 사용하여 로컬 디스크에 파일을 다운로드하는 방법은 다음 비디오를 확인하십시오

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