Aldığım Exe dosyasıyla ilgili bilgiler VerQueryValue aracılığıyla alın. Bu bilgileri kayıt edebilen (oluşturacak veya değiştirebilecek) bir ters fonksiyon var mı (WinApi veya Delphi)? Burada, örneğin, bunu yapabilen bir program var. Nasıl çalışır (http://www.angusj.com/resourcehacker)?Set EXE Sürüm Bilgisi
cevap
Sürüm bilgisi kaynaklar tarafından saklanır; Bu kaynağı düzenlemek için gerekenleri düzenlemek için. Burada mevcut bir dosya sürümü bilgisini klonlayabilen ve onu başka bir dosyaya ekleyebileceğim bir birim var. http://msdn.microsoft (
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.
Sadece dil ve kod sayfası bilgileri içindir. [VS_FIXEDFILEINFO] (http://msdn.microsoft.com/en-us/library/ms646997%28v=VS.85%29.aspx) nedir? +1 her neyse – TLama
Teşekkürler, şimdi araştırmalara katılacağım ... –
Eğer internette bulduğunuz bir birim ise, lisansa daha fazla dikkat etmeniz gerekiyor. En azından, kaynağa bir bağlantı sağlamalısınız. (Ayrıca, http://en.wikipedia.org/wiki/Run-on_sentence bir göz atın.) –
Bu [sürüm kaynak] tarafından belirlenir: Size (mevcut halkı bir arkadaşım tarafından kodlanmış ve bir oluyor) bu kodu başlayan ne istediğini yapmak çok kolaydır. com/tr-tr/kütüphane/aa381058 (VS.85) .aspx). Değiştirmek için ['UpdateResource'] (http://msdn.microsoft.com/en-us/library/ms648049 (VS.85) .aspx) kullanın. –
Burada, sürüm bilgilerinin nasıl ayarlanacağı ile ilgili bir programın bağlantısı var. Delphi 2009 ve üstü uyumlu. [Updated-setversion-exe-to-set-dosyası-versiyon-info-in-res-ya-exe] (http://www.jasontpenny.com/blog/2009/09/05/updated-setversion-exe- to-set-file-version-in-res-or-exe /) –