Есть рабочий код для обновления своей программы.
Все нормально работает, но не могу прикрутить SaveDialog для
сохранения свежей программы в указанное пользователем место.
Вот сам код
Код:
procedure TForm5.Button1Click(Sender: TObject);
var
url,r:WideString;
i,j:integer;
Razmer : int64;
begin
try
HTTP := TIdHTTP.Create(nil);
HTTP.Head('http://191.22.9.16/verty.exe');
Razmer := HTTP.Response.ContentLength; //размер файла
HTTP.Free;
Razmer := Round (Razmer / 1024);
label4.Caption:='Размер обновления: '+(IntToStr (Razmer) + ' KB');
Stream:=TMemoryStream.Create;
url:='http://191.22.9.16/verty.exe';
for i:=1 to length(url) do
begin
if url[i]='.' then
begin
j:=i;
end;
end;
r:=copy(url,j+1,length(url));
IdHTTP1.Get(url,Stream);
Stream.SaveToFile('c:\verty.exe');
except
on e:Exception do
Stream.Free;
end;
if progressbar1.position=progressbar1.max then begin
Application.Messagebox('Загрузка обновления прошла успешно.','Загрузка обновления..', mb_iconinformation or mb_ok);
// ShellExecute(Handle, 'open', 'c:\verty.exe', nil, nil, SW_SHOWNORMAL);
end;
end;
end.
А ещё предупреждает о
Цитата:
[Предупреждение] Unit3.pas(114): Variable 'j' might not have been initialized
|
Спасибо