Вопрос Проверка версии установочника с сервера

zettend

Старожил
Возможно ли осуществить проверку версии при соединение с сайтом?

Вообщем, у меня есть сайт, типа https://site.com/gver?=1234
Где 1234 - id релиза.
На страничке идёт ответ типа "ver.1234" нету никаких <body>ver.1234</body> и т.п.
Т.е. в ответе текстовый файл.

Возможно как-то сделать сделать, если "тест с сайта" не равен тексту в скрипте, то отображается надпись "Версия релиза устарела, пожалуйста перехешируйте раздачу и до качайте нужные файлы"?
 

ExPlayer

Старожил
Не знаю, как это реализовать средствами Inno (но было бы не плохо, если бы кто-то написал), но отдельную софтинку я писал (на Delphi) :)
 

Хамик

Старожил
Т.е. в ответе текстовый файл.
то есть у него есть расширение? типа txt? Или в ответ текстовая строка? Есть идея: если это текстовый файл, то загружаем его в tmp открываем, сравниваем текст и выдаем результат; как то так.
 

South

Знаток
Проверенный
Incorrect,
здесь http://krinkels.org/threads/ammyy-admin.2535/
InetUtils во вложениях
компилируешь, жмешь "выполнить", смотришь результат

function SaveInternetObjectToString(ObjURL: string): string; должно подойти

если длл не нужны, тогда ищи примеры без них, такие точно были, что-то вроде "получение внешнего IP-адреса"
 

El Sanchez

Новичок
Incorrect,
Код:
[Setup]
AppName=test
AppVerName=test
DefaultDirName={tmp}
Uninstallable=no
CreateUninstallRegKey=no

[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl

[Code]
const
  SXH_PROXY_SET_PROXY = 2;
  HTTP_STATUS_OK      = 200;

//////////////////////////////////////////////////////
function GetXMLHTTPRequest(const Url: string): string;
var
  XMLHTTP: Variant;
  ProxyEnable: Cardinal;
  ProxyServer, ProxyOverride: string;
begin
  Result := '';
  try
    XMLHTTP := CreateOleObject('MSXML2.ServerXMLHTTP.6.0');
    if RegQueryDWordValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Internet Settings', 'ProxyEnable', ProxyEnable) and (ProxyEnable = 1) then
    begin
      if RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Internet Settings', 'ProxyServer', ProxyServer) and
        RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Internet Settings', 'ProxyOverride', ProxyOverride) then
          XMLHTTP.setProxy(SXH_PROXY_SET_PROXY, ProxyServer, ProxyOverride);
    end;
    XMLHTTP.open('GET', Url, False);
    XMLHTTP.send;
    if XMLHTTP.status = HTTP_STATUS_OK then
      Result := XMLHTTP.responseText;
  except
    RaiseException(GetExceptionMessage);
  end;
end;

///////////////////////////
procedure InitializeWizard;
begin
  MsgBox(GetXMLHTTPRequest('https://site.com/gver?=1234'), mbInformation, MB_OK);
end;
 

Joker007

Мимокрокодил
Incorrect,
Код:
[Setup]
AppName=test
AppVerName=test
DefaultDirName={tmp}
Uninstallable=no
CreateUninstallRegKey=no

[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl

[Code]
const
  SXH_PROXY_SET_PROXY = 2;
  HTTP_STATUS_OK      = 200;

//////////////////////////////////////////////////////
function GetXMLHTTPRequest(const Url: string): string;
var
  XMLHTTP: Variant;
  ProxyEnable: Cardinal;
  ProxyServer, ProxyOverride: string;
begin
  Result := '';
  try
    XMLHTTP := CreateOleObject('MSXML2.ServerXMLHTTP.6.0');
    if RegQueryDWordValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Internet Settings', 'ProxyEnable', ProxyEnable) and (ProxyEnable = 1) then
    begin
      if RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Internet Settings', 'ProxyServer', ProxyServer) and
        RegQueryStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Internet Settings', 'ProxyOverride', ProxyOverride) then
          XMLHTTP.setProxy(SXH_PROXY_SET_PROXY, ProxyServer, ProxyOverride);
    end;
    XMLHTTP.open('GET', Url, False);
    XMLHTTP.send;
    if XMLHTTP.status = HTTP_STATUS_OK then
      Result := XMLHTTP.responseText;
  except
    RaiseException(GetExceptionMessage);
  end;
end;

///////////////////////////
procedure InitializeWizard;
begin
  MsgBox(GetXMLHTTPRequest('https://site.com/gver?=1234'), mbInformation, MB_OK);
end;
Здравствуйте!
Подскажите пожалуйста как решить проблему:
Runtime Error (at 1:1587):
msxml6.dll:Не удается разрешить имя или адрес сервера.
Если интернет отсутствует, то выдает такую ошибку!
Inno Setup Compiler указывает на строку: XMLHTTP.send; ( как ошибка )
Заранее спасибо!
 
Сверху