Opis programu i lang-charset

0

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.

0

Kod z postu pq (http://4programmers.net/Forum/viewtopic.php?id=39666) jest OK, tylko że tam coś\ktoś "zjadł" bekslesze!
Popraw

SFInfo := Format('%s%.4x%.4x%s%s%', ['StringFileInfo',
        LoWord(TransNo^), HiWord(Transno^), '', VerStr]);

na

SFInfo := Format('%s%.4x%.4x%s%s%', ['\StringFileInfo\',
        LoWord(TransNo^), HiWord(Transno^), '\', VerStr]);

//
Polska - Dania : 1 - 5
Chłopcy z reprezentacji powinni sobie chyba poszukać innego zajęcia...
Może programowanie w Delphi ?!

0

Dzięki, działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1