Pobranie nazwy firmy danego pliku

0

Witam;)

Na wstępie mówię, że szukałem rozwiązania jednak nie mogłem znaleźć.

Chodzi o to, że nie wiem jak pobrać nazwę firmy pliku. Przykładowo C:\Windows\explorer.exe - Microsoft Corporation.

Moje środowisko to Turbo Delphi Explorer 2006.

Pozdrawiam

0
  1. GetFileVersionInfoSize
  2. GetFileVersionInfo
  3. VerQueryValue
0

Dziękuje za odpowiedź, ale prosiłbym, żebyście bardziej mnie nakierowali na konkretnie pobieranie firmy.

0

Oj... Jak mi przykro, że google Tobie nie działa. Ech te wakacyjne i powakacyjne lenie. Masz
http://delphi.about.com/cs/adptips2001/a/bltip0701_4.htm nie testowałem ale powinno działać.
A na przyszłośc tak ciężko w google wpisać delphi get exe information i zbadać co znajdzie?

0
olesio napisał(a)

Oj... Jak mi przykro, że google Tobie nie działa. Ech te wakacyjne i powakacyjne lenie.

Na wstępie mówię, że szukałem rozwiązania jednak nie mogłem znaleźć.

Masz
http://delphi.about.com/cs/adptips2001/a/bltip0701_4.htm nie testowałem ale powinno działać.
A na przyszłośc tak ciężko w google wpisać delphi get exe information i zbadać co znajdzie?

Powinno działać, ale nie działa niestety mi i na tej stronie byłem przed napisaniem posta.</quote>

0
function GetAppVersionInfo(const Plik: string): string;
var
  VerSize: integer;
  VerBuf: PChar;
  VerBufValue: pointer;
  VerHandle: cardinal;
  VerBufLen: cardinal;
  VerKey: string;

  function GetInfo(ThisKey: string): string;
  begin
    Result := '';
    VerKey := '\StringFileInfo\' + IntToHex(loword(integer(VerBufValue^)), 4) +
    IntToHex(hiword(integer(VerBufValue^)), 4) + '\' + ThisKey;
    if VerQueryValue(VerBuf, PChar(VerKey), VerBufValue, VerBufLen) then
      Result := StrPas(VerBufValue);
  end;

  function QueryValue(ThisValue: string): string;
  begin
    Result := '';
    if GetFileVersionInfo(PChar(Plik), VerHandle, VerSize, VerBuf) and
      VerQueryValue(VerBuf, '\VarFileInfo\Translation', VerBufValue, VerBufLen) then
      Result := GetInfo(ThisValue);
  end;

begin
  VerSize := GetFileVersionInfoSize(PChar(Plik), VerHandle);
  VerBuf := AllocMem(VerSize);
  try
    Result := QueryValue('CompanyName');
    {
    QueryValue('CompanyName');
    QueryValue('FileDescription');
    QueryValue('FileVersion');
    QueryValue('InternalName');
    QueryValue('LegalCopyRight');
    QueryValue('LegalTradeMark');
    QueryValue('OriginalFileName');
    QueryValue('ProductName');
    QueryValue('ProductVersion');
    QueryValue('Comments');
    }
  finally
    FreeMem(VerBuf, VerSize);
  end;
end;


// wywołanie
procedure TForm2.Button1Click(Sender: TObject);
begin
 ShowMessage(GetAppVersionInfo('C:\Windows\explorer.exe'));
end;

// wrzuć to proszę do gotowców albo do faq, o ile tego tam jeszcze nie ma... dzięki! - Ł

// niestety nie mogę, albo nie potrafię dodać do Gotowców ;/ - Opi

0

O super! Też mi się to przyda! Dzięki.

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