Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#8

AW: Sprach ID aus Exe auslesen

  Alt 18. Jul 2025, 09:44
Hmm...

Wieso macht ihr das nicht so wie MS es sogar in seinem Beispiel angibt:
Delphi-Quellcode:
type
  TTransRec = packed record
    Lang, // language code
    CharSet: Word; // character set (code page)
  end;
  PTransRec = ^TTransRec; // pointer to TTransRec

procedure SprachID2Codepage;
var
  InfoSize: DWORD;
  InfoData: Array of Byte;
  Translation: PTransRec;
  TranslationLen: UINT;
begin
  InfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), InfoSize);
  if InfoSize > 0 then
  begin
    SetLength(InfoData, InfoSize);
    if GetFileVersionInfo(PChar(ParamStr(0)), 0, InfoSize, @InfoData[0]) then
    begin
      if VerQueryValue(@InfoData[0], '\VarFileInfo\Translation', Pointer(Translation), TranslationLen) then
      begin
        ShowMessage(Format('Sprach-ID: %.4x, Codepage: %.4x', [Translation.Lang, Translation.CharSet]));
      end;
    end;
  end;
end;
Das sollte doch für 32 und 64 Bit funktionieren ?
(Kann es gerade nicht mit 64bit testen)

Delphi-Quellcode:
  for Idx := 0 to Pred(TranslationLen) do
  begin
    ShowMessage(Format('Sprach-ID: %.4x, Codepage: %.4x', [Translation.Lang, Translation.CharSet]));
    Inc(Translation);
  end;
Selbst ein Durchgehen durch alle Codes ist so sauber möglich...
Oder vertue ich mich hier?
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)

Geändert von HolgerX (18. Jul 2025 um 09:51 Uhr)
  Mit Zitat antworten Zitat