كيف عمل تحديث أوتوماتيكي لبرنامج المكتوب بدلفي
#6
بإمكانك إستعمال مكونات Indy (موجودة مع دلفي)
هذا مثال للتحقق فقط من وجود نسخة جديدة إستعملت فقط مكون IdHTTP
في المرفقات تجد سورس بسيط مع ملف نصي
تعديل الملف النصي يتم بإستعمال إحدى محررات Hex لأن دالة التحقق تتعامل مع كل بايتات الملف

PHP كود :
uses
  IdHTTP
;

type
  TVer 
= packed record
    Sign
: array[0..3] of Char;
 
   Ver: Word;
 
 end;

function 
CheckVer(const URL: string; Ver: TVer): Integer;
var
 
 HTTP: TIdHTTP;
 
 Stm: TMemoryStream;
 
 VerStm: TVer;
begin
  Result  
:= 0;
 
 HTTP := TIdHTTP.Create(nil);
 
 Stm := TMemoryStream.Create;
 
 try
    HTTP
.HandleRedirects := True;
 
   HTTP.ConnectTimeout := 15000; // 15sec
 
   HTTP.ReadTimeout := 15000;    // 15sec
 
   try
      HTTP
.Get(URL, Stm);
 
     Result := Integer(CompareMem(@Ver, Stm.Memory, SizeOf(TVer)));
 
   except
      
// Error!
 
     Result := -1;
 
   end;
 
 finally
    HTTP
.Free;
 
   Stm.Free;
 
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 
 CurVer: TVer;
 
 iResult: Integer;
begin
  StrPCopy
(CurVer.Sign, 'Ver:'); // Buffer Signature
 
 CurVer.Ver := 01;              // Current Version
 
 iResult := CheckVer('http://www.example.net/updater.txt', CurVer);
 
 case iResult of
    
-1: MessageBox(Handle, 'Error!', 'Up', MB_ICONWARNING);
 
   0: MessageBox(Handle, 'New version is available', 'Up', MB_ICONASTERISK);
 
 end;
end; 


الملفات المرفقة
.rar   Check Version.rar (الحجم : 1.56 ك ب / التحميلات : 57)
سبحان الله وبحمده سبحان الله العظيم
الرد


الردود في هذا الموضوع
RE: كيف عمل تحديث أوتوماتيكي لبرنامج المكتوب بدلفي - بواسطة Agmcz - 25-12-2015, 12:43 AM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم