Delphi 7 - Автоапдейт программы. 1. Создаем файл version.php с содержанием 1.00 (версия программы). 2. Кидаем на форму компонент idHTTP. 3. Кидаем на форму Memo делаем его невидимым (Visible:=false). 4. Добавляем в uses shallpi. 5. Добавляем проведуру update. 6. Заливаем на Ваш сайт файл version.php (в котором вы каждый раз будете обновлять версию Вашей программы) и lastversion.exe (который при выходе новой версии тоже нужно заменять). procedure update; var q:tmemorystream; w:hwnd; var f:TextFile; begin ShowMessage('Сейчас программа обновит свою версию!'); q:=TMemoryStream.Create; Form1.idHTTP1.Get('http://yourwebsite.com/lastversion.exe',q); //Загружаем последнюю версию программы. q.SaveToFile('0'+Application.Title+'.exe'); //Сохраняем ее как AssignFile(f,'update.bat'); //Пишем батник ReWrite(f); //Перезапись (если батник с таким названием уже есть) WriteLn(f,'@echo off'); WriteLn(f,'ping -n 2 127.0.0.1 > NUL'); //Задержка 2 секунды WriteLn(f,'del "'+Application.Title+'.exe"'); //Удаляем старую версию программы WriteLn(f,'rename 0'+Application.Title+'.exe '+Application.Title+'.exe'); //Переименовываем 0*.exe в *.exe WriteLn(f,'start '+Application.Title+'.exe'); //Запускаем программу WriteLn(f,'del "%0" >nul'); //Самоуничтожение батника CloseFile(f); Application.Terminate; //Закрываем программу ShellExecute(Handle, 'open','update.bat', nil, nil, SW_HIDE); //Запускаем батник end; Код проверки на обновление: Form1.Memo1.Text:=Form1.IdHTTP1.Get('http://yourwebsite.com/version.php'); //Записываем версию программы в Memo. if Form1.Memo1.text = '1.0' then //Если версия программы = 1.0 то (в нашем случае ничего не происходит) else //И так понятно, если версия программы написанная в файле отличается от нашей то update; //Вызов процедуры обновления Если вы хотите сделать "проверку на обновление" по кнопке, то засуньте этот код в кнопку. Если же вы хотите "автообновление", то засуньте этот код в FormCreate. P.S/ Не забывайте с каждой новой версией изменять ее в коде проверки на обновление, и в файле version.php А так же каждый раз загружать новый lastversion.exe
Ну Memo то зачем??? Не судьба хотя бы так : Code: function VersionGet : String; begin Result := Trim(Form1.idHTTP1.Get('http://yourwebsite.com/version.pony')); //Качаем файл с версией end; И проверять так : Code: if VersionGet = '1.0' then //Если версия программы = 1.0 то (в нашем случае ничего не происходит) else //И так понятно, если версия программы написанная в файле отличается от нашей то update; //Вызов процедуры обновления
Зачем что-то скачивать? Не проше создать страницу site.ru/update.php с содержанием 1.0 и проверять версию из программы?