घर
Top.Mail.Ru Yandeks.Metrika
फोरम: "विनएपीआई";
वर्तमान संग्रह: 2002.01.08;
डाउनलोड करें: [xml.tar.bz2];

नीचे

प्रदर्शन संस्करण * .exe इसी तरह की शाखाएँ खोजें


Skiv   (2001-11-05 09:55) [0]

Можно ли прочесть верию файла без использования сторонних
компонент (классов) типа RX, LMD.



Digitman   (2001-11-05 10:27) [1]

Можно. Все эти компоненты в конечном итоге обращаются к WINAPI-вызовам
GetFileVersionInfo, GetFileVersionInfoSize, VerQueryValue. Как, впрочем, и все прочие компоненты : все они изнутри обращаются к API (говоря правильней - компоненты инкапсулируют ф-ции API)



Dimka Maslov   (2001-11-05 11:02) [2]


type // File version record type
PFileVersion = ^TFileVersion;
TFileVersion = record
HiVersion : Integer; // Major version number
LoVersion : Integer; // Minor version number
Release : Integer;
Build : Integer;
end;

function FileVersion(const FileName: TString = ""): TFileVersion;
var
S: TString;
hMem: HGLOBAL;
Buf: pointer;
BufSize, Len, dwHandle: DWORD;
VerInfo: PVSFixedFileInfo;
pszName: PAnsiChar;
begin
FillChar(Result, SizeOf(Result), 0);
S:=FileName;
CleanUp(S, True);
if IsEmptyStr(S) then S:=ParamStr(0);
pszName:=@S[1];
BufSize:=GetFileVersionInfoSize(pszName, dwHandle);
if BufSize<>0 then begin
hMem:=GlobalAlloc(GHND, BufSize);
if hMem = 0 then OutOfMemoryError;
Buf:=GlobalLock(hMem);
if Buf=nil then OutOfMemoryError;
GetFileVersionInfo(pszName, dwHandle, BufSize, Buf);
VerQueryValue(Buf, "\", pointer(VerInfo), Len);
with VerInfo^ do begin
Result.HiVersion:=HiWord(dwFileVersionMS);
Result.LoVersion:=LoWord(dwFileVersionMS);
Result.Release:=HiWord(dwFileVersionLS);
Result.Build:=LoWord(dwFileVersionLS);
end;
GlobalUnlock(hMem);
GlobalFree(hMem);
end else Result.HiVersion:=-1;
end;




Dimka Maslov   (2001-11-05 11:06) [3]

В примере нужно убрать CleanUp(S, True), a вызов IsEmptyStr(S)के साथ बदलें S = ""और TString на string



पन्ने: 1 पूरी शाखा

फोरम: "विनएपीआई";
वर्तमान संग्रह: 2002.01.08;
डाउनलोड करें: [xml.tar.bz2];

ऊपर





मेमोरी: 0.55 एमबी
समय: 0.037 c
1-22073
HydraMarat
2001-12-19 00:22
2002.01.08
DLL या BPL


14-22406
शाकाहारी
2001-11-10 12:56
2002.01.08
यह मेरे साथ यहां अलग हुआ ...


4-22476
राज्य
2001-11-02 19:42
2002.01.08
मदद, UpdateResource BPL फ़ाइलों के साथ काम नहीं करता है!


1-22136
Dorixe
2001-12-20 09:40
2002.01.08
proekt


1-22144
shornik
2001-12-20 11:36
2002.01.08
मास्टर्स !!!! कृपया समस्या में मदद करें!





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский