Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с версией файла!!! [D6, Win95/98, WinME, NT4, Win2k, WinXP]


LazorenkoX ©   (2002-12-11 00:32:00) 

Как мене узнать версию файла и другую инфу, и поместить её в структуру:

struct TFileInfo
{
String FMajorVersion, FMinorVersion, FRelease, FBuild,
PMajorVersion, PMinorVersion, PRelease, PBuild,
Flags, System, Type, SubType;
};

Нижеследующий код не выдаёт ошибок, но и не показывает информацию!!! Что делать?

Понимаю, что это не совсем обджект паскаль, но близкий к нему билдер :)


Viktor Kushnir   (2002-12-11 08:23:00) [1]

Версию файла я узнавал так (NameApp - путь к файлу):
Может это натолкнет тебя на мысли.
function CurrentFileInfo(NameApp : string) : string;
var dump: DWORD;
size: integer;
buffer: PChar;
VersionPointer, TransBuffer: PChar;
Temp: integer;
CalcLangCharSet: string;
begin
size := GetFileVersionInfoSize(PChar(NameApp), dump);
buffer := StrAlloc(size+1);
try
GetFileVersionInfo(PChar(NameApp), 0, size, buffer);

VerQueryValue(buffer, "\VarFileInfo\Translation", pointer(TransBuffer),dump);
if dump >= 4 then
begin
temp:=0;
StrLCopy(@temp, TransBuffer, 2);
CalcLangCharSet:=IntToHex(temp, 4);
StrLCopy(@temp, TransBuffer+2, 2);
CalcLangCharSet := CalcLangCharSet+IntToHex(temp, 4);
end;


Rouse_   (2002-12-11 00:43:00) [2]

У тю - тю, не стал разбираться в коде, тем более вечер перед праздником, кратко опиши проблему, но не
> Как мене узнать версию файла и другую инфу,
Код или подсказка нужна?

Желаю успехов


LazorenkoX   (2002-12-11 00:33:00) [3]

Заранее благодарен.


LazorenkoX   (2002-12-11 00:32:00) [4]

TFileInfo FillFileInfo(AnsiString FileName)
{
TFileInfo FileInfo;
long lBufferLen;
DWORD *lVerPointer;
UINT lVerbufferLen;
VS_FIXEDFILEINFO udtVerBuffer;

char *FullFileName;
FullFileName=FileName.c_str();

/*** Get size ****/
lBufferLen = GetFileVersionInfoSize(FullFileName, 0);
if(lBufferLen


Наверх

Титульная страница Поиск, карта сайта Написать письмо