Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизКак вытнуть данные из ресурсного файла Найти похожие ветки
← →
galina (2004-03-12 12:28) [0]Есть такой *.RC файл по нему создается ресурсный файл (дерективой компилятора {$R "....res" "......RC"})
*.RC:
VERSIONINFO_1 VERSIONINFO
FILEVERSION 1, 0, 0, 0
PRODUCTVERSION 1, 0, 0, 0
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
{
BLOCK "StringFileInfo"
{
BLOCK "080904E4"
{
VALUE "CompanyName", ".....\000"
VALUE "FileDescription", "....\000"
VALUE "FileVersion", ".....\000"
VALUE "DBVersion", "1.0.0.0\000"
VALUE "InternalName", "...........\000"
VALUE "LegalCopyright", "....................\000"
VALUE "OriginalFilename", "...........\000"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 2057, 1252
}
}
MAINICON ICON "Feather.ico"
Как вытянуть программно с такого файла информацию о версии.
Если кто знает помогите.
Зарание благодарна.
← →
Гаврила (2004-03-12 12:43) [1]функцией VerQueryValue
← →
galina (2004-03-12 12:44) [2]Спасибо
← →
Юрий Зотов © (2004-03-12 12:55) [3]Из справки Delphi:
procedure TForm1.Button1Click(Sender: TObject);
const
InfoNum = 10;
InfoStr: array[1..InfoNum] of string = ("CompanyName", "FileDescription", "FileVersion", "InternalName", "LegalCopyright", "LegalTradeMarks", "OriginalFileName", "ProductName", "ProductVersion", "Comments");
var
S: string;
n, Len, i: DWORD;
Buf: PChar;
Value: PChar;
begin
S := Application.ExeName;
n := GetFileVersionInfoSize(PChar(S), n);
if n > 0 then
begin
Buf := AllocMem(n);
Memo1.Lines.Add("VersionInfoSize = " + IntToStr(n));
GetFileVersionInfo(PChar(S), 0, n, Buf);
for i := 1 to InfoNum do
if VerQueryValue(Buf, PChar("StringFileInfo\040904E4\" + InfoStr[i]), Pointer(Value), Len) then
Memo1.Lines.Add(InfoStr[i] + " = " + Value);
FreeMem(Buf, n);
end
else
Memo1.Lines.Add("No version information found");
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.032 c