![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
VerQueryValue ! [D6, WinXP]
psa247 © (2005-11-21 18:52:00)Не могу получить информацию из ресурсов файла. GetLastError выдает сообщение, что указанный тип ресурса в образе отсутствует, хотя в действительности есть.
ThisVerFixedFileInfo : TVSFixedFileInfo;
VSize : integer;
VHandle:DWORD;
Info : pointer;
PC : pointer;
Len : UINT;
str :string;
begin
EUID:= '{C6D3F6D4-8CD5-458B-A3AC-CF7667663C73';
VSize:= GetFileVersionInfoSize(PChar(Filename), VHandle);
if VSize > 0 then begin
GetMem(Info, VSize);
if GetFileVersionInfo(PChar(Filename),VHandle,VSize, Info)then begin
if VerQueryValue(Info,'\\StringFileInfo\\040904E4\\FileDescription',PC,Len)
then str:= StrPas(PC)
else str:= SysErrorMessage(GetLastError);
psa247 (2005-11-25 10:22:00) [1]
> бездумно)
Да нет. Проблему нашел в lang-charsetпроанализировав данный пример.
> С-шный пример
Вот-вот. При удалении директорий, как оказалось, тоже двойные слэши нужны
Digitman (2005-11-22 15:07:00) [2]
> Упер вариант Семена Сорокина
вот именно - "упер" ... бездумно) .... авось да заработает)
ну вот скажи на милость, за коим хреном ты делишь узлы пути двойными бэкслэшами, в то время как в справке черным по белому написано
The string consists of names separated by backslashes (\)
ГДЕ тут про двойные бэкслэши написано ?)
если ты про ниже приводимый в справке пример
The following example shows how to retrieve the FileDescription string-value from a block of version information:
VerQueryValue(pBlock,
TEXT("\\StringFileInfo\\040904E4\\FileDescription"),
&lpBuffer,
&dwBytes);
то это же С-шный пример, а не паскалевый)
psa247 (2005-11-21 19:16:00) [3]Упер вариант Семена Сорокина
:)