Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не определяется версия приложения


Handle ©   (2011-05-31 11:42:00) 

Приложение проверяет наличие обновлений на веб-сервере. Для этого формируется HTTP-запрос, который включает в себя текущую версию приложения (для определения текущей версии написана функция GetValue).


function GetVersion(const ExeFileName: string): string;
const
 InfoNum = 10;
 InfoStr: array[1..InfoNum] of string = ('CompanyName', 'FileDescription', 'FileVersion', 'InternalName', 'LegalCopyright', 'LegalTradeMarks', 'OriginalFileName', 'ProductName', 'ProductVersion', 'Comments');
var
 N, Len: DWORD;
 Buf: PChar;
 X: PVSFixedFileInfo;
begin
 Result := '';
 N := GetFileVersionInfoSize(PChar(ExeFileName), N);
 if N > 0 then
 begin
   GetMem(Buf, N);
   try
     GetFileVersionInfo(PChar(ExeFileName), 0, N, Pointer(Buf));
     if VerQueryValue(Buf, '\', Pointer(X), Len) then
       Result := IntToStr(HIWORD(X^.dwFileVersionMS)) +
      '.' + IntToStr(LOWORD(X^.dwFileVersionMS)) +
       '.' + IntToStr(HIWORD(X^.dwFileVersionLS)) +
        '.' + IntToStr(LOWORD(X^.dwFileVersionLS));
   finally
     FreeMem(Buf);
   end;
 end;
 if Length(Result) = 0 then
   Result := const_msg_VersionError;
end;


Почемуто функция иногда не может определить версию (хотя информацию о версии исполняемый файл содержит), в результате чего неправильно формируется HTTP-запрос. Что может быть не так?


sniknik   (2011-05-31 11:55:00) [1]

> Что может быть не так?
может ищешь не там... результаты запросов вообще то кэшируются (могут), и некоторые кэшируюшие прокси даже не обращают внимания на заголовки (ну там поле ехпаред)... т.е. можешь получать старые данные когда на сервере уже все давно поменялось.

можно подставить дату со временем в фиктивный параметр запроса и посмотреть... url тогда будет всегда уникальный, и кэш работать не будет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо