सेट करें संस्करण EXE-file संस्करण पर जानकारी VerQueryValue के माध्यम से प्राप्त होती है। क्या कोई व्यस्त कार्य (विनएपी या डेल्फी) है जो ऐसी जानकारी पंजीकृत (स्थापित या बदल सकता है)? यहां, उदाहरण के लिए, एक ऐसा प्रोग्राम है जो ऐसा करने में सक्षम है। यह कैसे काम कर सकता है (http://www.angusj.com/resourcehacker)?EXE VersionInfo
उत्तर
संस्करण जानकारी संसाधनों के माध्यम से संग्रहीत की जाती है; यह संपादित करने के लिए कि आपको बस उस संसाधन को संपादित करने की आवश्यकता है। यहां एक इकाई है जो मैंने पाया है कि मौजूदा फ़ाइल संस्करण की जानकारी क्लोन कर सकते हैं और इसे किसी अन्य फ़ाइल से जोड़ सकते हैं।
unit cloneinfo;
interface
uses Windows, SysUtils;
type
LANGANDCODEPAGE = record
wLanguage: Word;
wCodePage: Word;
end;
procedure clone(sFile,output:string);
implementation
procedure clone(sFile,output:string);
var
dwHandle, cbTranslate: cardinal;
sizeVers: DWord;
lpData, langData: Pointer;
lpTranslate: ^LANGANDCODEPAGE;
hRes : THandle;
begin
sizeVers := GetFileVersionInfoSize(PChar(sFile), dwHandle);
If sizeVers = 0 then
exit;
GetMem(lpData, sizeVers);
try
ZeroMemory(lpData, sizeVers);
GetFileVersionInfo (PChar(sFile), 0, sizeVers, lpData);
If not VerQueryValue (lpData, '\VarFileInfo\Translation', langData, cbTranslate) then
exit;
hRes := BeginUpdateResource(pchar(output), FALSE);
//For i := 0 to (cbTranslate div sizeof(LANGANDCODEPAGE)) do
//begin
lpTranslate := Pointer(Integer(langData) + sizeof(LANGANDCODEPAGE));
UpdateResource(hRes, RT_VERSION, MAKEINTRESOURCE(VS_VERSION_INFO), lpTranslate^.wLanguage,lpData, sizeVers);
//end;
EndUpdateResource(hRes, FALSE);
finally
FreeMem(lpData);
end;
end;
end.
यह सिर्फ भाषा और कोड पृष्ठ की जानकारी के लिए है। [VS_FIXEDFILEINFO] के बारे में क्या (http://msdn.microsoft.com/en-us/library/ms646997%28v=VS.85%29.aspx)? +1 वैसे भी – TLama
धन्यवाद बड़ा, अब मैं शोध में व्यस्त रहूंगा ... –
यदि यह एक इकाई है जिसे आपने इंटरनेट पर पाया है, तो आपको लाइसेंसिंग के साथ और सावधान रहना होगा। बहुत कम से कम, आपको स्रोत को एक लिंक प्रदान करना चाहिए। (इसके अलावा, http://en.wikipedia.org/wiki/Run-on_sentence पर एक नज़र डालें।) –
यह [संस्करण संसाधन] से निर्धारित होता है (http://msdn.microsoft: यह आप (यह मेरा एक दोस्त द्वारा कोडित है और है उपलब्ध सार्वजनिक) इस कोड से क्या शुरू करने के लिए करना चाहते हैं बहुत आसान है। com/en-us/पुस्तकालय/aa381058 (VS.85) .aspx)। इसे संशोधित करने के लिए ['UpdateResource'] (http://msdn.microsoft.com/en-us/library/ms648049 (VS.85) .aspx) का उपयोग करें। –
यहां एक प्रोग्राम के साथ एक लिंक है जो स्रोत जानकारी को सेट करने के स्रोत के साथ है। डेल्फी 200 9 और संगत। [अद्यतन-setversion-एक्स-टू-सेट-फ़ाइल-संस्करण-जानकारी-इन-रेस या exe] (http://www.jasontpenny.com/blog/2009/09/05/updated-setversion-exe- टू-सेट-फ़ाइल-वर्जन-इन-रेस-या-एक्सई /) –