![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверка новой версии программы. [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зайди на сайт и поиши я там гдето это видел