Witam!
Otóż chcĘ pobrać informacje z pliku, konkretnie sekcja VERSIONINFO - FileDescripton.
Próbowałem stosować kod PQ, ale on coś nie działa: http://4programmers.net/Forum/viewtopic.php?id=39666
Poniższy kod przerobiłem z helpa:
var
S: string;
n, Len, i: DWORD;
s2:pointer;
Buf: PChar;
Value,Value2: PChar;
begin
S := 'C:\WinME\FreeCell.exe';
n := GetFileVersionInfoSize(PChar(S), n);
Buf := AllocMem(n);
GetFileVersionInfo(PChar(S), 0, n, Buf);
VerQueryValue(Buf, PChar('VarFileInfo\Translation'),Pointer(Value), Len);
VerQueryValue(Buf, PChar('\\StringFileInfo\\'+Value+'\\FileDescription'), Pointer(Value2), Len);
ShowMessage('Opis: ' + Value2);
FreeMem(Buf, n);
end;
Ale niestety nie działa. Wiem, że zastosowałem niepoprawny typ dla Value, próbowałem PLongInt, ale to niestety tez nic nie dało. Choć też wstyd się przyznać, nie za bardzo wiem jak poprawnie przekonwertować typ PLongInt do String [wstyd], tutaj również posłużyłem się kodem PQ, ale wynik jest nieprawidłowy :-/
Jedyna rzecz jaką brakuje w tym kodzie jest lang-charset - kod języku używany w sekcji VERSIONINFO zapisany w hexach. Dla języka angielskiego jest to 040904E4, a dla polskiego? Te informacje powinienem pobrać właśnie z 'VarFileInfo\Translation', ale mam z tym problem.