Ładny brzuch

w jaki sposb w Delphi pobra numer wersji programu (np. 1.1.8)?
z gry thanks...




w jaki sposb w Delphi pobra numer wersji programu (np. 1.1.8)?
z gry thanks...

Umieszczasz na serwerze i pobierasz programem. Nie wiem gdzie tu problem?

chodzi mi o co innego... nie miaem na myli prby aktualizacji programu tylko pobranie numeru wersji, ktry jest umieszczony np. we waciwociach pliku wykonywalnego. po prostu chc sprawdzi, czy program o nazwie X jest zainstalowany w odpowiedniej wersji.

Takie informacje umieszczane s w zasobach aplikacji.



kozack: a mgby zapoda jaki kawaek kodu? mi nie bardzo chce si szpera po googlach bo mi net ledwie dziaa i czasu nie mam...

Version Information Reference

Gwnie funkcje GetFileVersionInfoEx oraz GetFileVersionInfoSizeEx.
Uytkownik Kozack edytowa ten post 09 luty 2009, 11:30
kozack: moesz da gotowca? mi to jako nie wychodzi.
w necie znalazem takie co:
function GetFileVersion(Filename: string): string; var N, Len: DWORD; Buf: PChar; Value: PChar; begin Result := ''; N := GetFileVersionInfoSize(PChar(Filename), N); if N > 0 then begin Buf := AllocMem(N); GetFileVersionInfo(PChar(Filename), 0, N, Buf); if VerQueryValue(Buf, PChar('StringFileInfo\040904E4\FileVersion'), Pointer(Value), Len) then Result := Value; FreeMem(Buf, N); end; end;
ale to nie dziaa.

Naprawd tak trudno? <_<

function GetFleVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String; var sFileName: String; iBufferSize: DWORD; iDummy: DWORD; pBuffer: Pointer; pFileInfo: Pointer; iVer: array[1..4] of Word; begin Result := ''; sFileName := FileName; if (sFileName = '') then begin // prepare buffer for path and terminating #0 SetLength(sFileName, MAX_PATH + 1); SetLength(sFileName, GetModuleFileName(hInstance, PChar(sFileName), MAX_PATH + 1)); end; // get size of version info (0 if no version info exists) iBufferSize := GetFileVersionInfoSize(PChar(sFileName), iDummy); if (iBufferSize > 0) then begin GetMem(pBuffer, iBufferSize); try GetFileVersionInfo(PChar(sFileName), 0, iBufferSize, pBuffer); VerQueryValue(pBuffer, '\', pFileInfo, iDummy); iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS); iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS); iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS); iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS); finally FreeMem(pBuffer); end; // format result string Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]); end; end;

o, dziki. temat do zamknicia.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •