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

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

Проверка новой версии программы. [D7, WinXP]


kyn66 ©   (2005-10-31 09:05:00) 

Уважаемые мастера. Каким образом можно в программе сделать проверку на наличие новой версии своей программы, находящейся на сайте?


kyn66   (2005-11-01 15:06:00) [1]

Есть одна загвоздка с [2] В данном случае конечно-же корректно проверяется версия Ехе-шника, но как быть, если на сайте лежит прога в архиве? Один выход подлаживать некий левый файлец и проверять по нему.


Sergey13   (2005-11-01 12:39:00) [2]

http://polesoft.narod.ru/Products/Starter/starter.html
Готовая проверялка. Работает (у меня) много лет на ура. Если есть желание - все фри.


kyn66   (2005-11-01 12:36:00) [3]

Да, спасибо, так и сделаю.


kyn66   (2005-10-31 17:36:00) [4]

Да..., если не знаешь как задать влпрос поиска, найди попробуй. Мне-бы понять сам механизм.


oldman   (2005-10-31 17:33:00) [5]

Не первый раз я вижу подобный вопрос:
"я написал что-то. как мне узнать то-то, что тоже я написал?"
Господи, ты же автор, вот и поставь проверку.
выложи на сайт файл маленький: "вышла версия N.ММ"
А в программе проверка: если "ММ" отличается от "КК" то...


Erik1   (2005-10-31 15:26:00) [6]

А вот мой вариант, довольно корткий:
function GetCurrentVersion(const FileName: string): Int64;
var
 Info: Pointer;
 Temp,
   InfoSize,
   FileInfoSize: DWORD;
 FileInfo: PVSFixedFileInfo;
 CurFile: string;
begin
 Result := 0;
 CurFile := LowerCase(FileName);
 InfoSize := GetFileVersionInfoSize(PChar(CurFile), Temp);
 if InfoSize > 0 then
 begin
   GetMem(Info, InfoSize);
   FileInfoSize := SizeOf(FileInfo^);
   try
     GetFileVersionInfo(PChar(CurFile), 0, InfoSize, Info);
     VerQueryValue(Info, '\', Pointer(FileInfo), FileInfoSize);
     with FileInfo^ do
     begin
       Result := dwFileVersionMS;
       Result := Result shl 32;
       Result := Result + dwFileVersionLS;
     end;
   finally
     FreeMem(Info, InfoSize);
   end;
 end;
end;
Int64 очень легко преобразовать в string:
function VerToStr(const Value: Int64): string;
begin
 Result := IntToStr(Value shr 48) + '.' + IntToStr((Value shr 32) and $FFFF) +
   '.' + IntToStr((Value shr 16) and $FFFF) + '.' + IntToStr(Value and $FFFF);
end;


Crazy_Diman   (2005-10-31 12:21:00) [7]

http://www.delphikingdom.ruзайди на сайт  и поиши я там гдето это видел


Наверх

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