Identificar a versão do BDE instalado

Delphi

23/08/2007

Boa tarde,

Alguém sabe como identificar via programação a versão do BDE que esta instalada na máquina do cliente?
Por exemplo identificar se é 5.1.1.1 ou 5.2.0.2 .

O arquivo IDAPI32.DLL contém esta informação, tem alguma forma de ler?

Obrigado

Airton


Airoosp

Airoosp

Curtidas 0

Respostas

Araujojunior

Araujojunior

23/08/2007

Eu utilizo essa função para pegar a versão do arquivo:

function GetFileInfo(FName, InfoType: string): string;
var Info: Pointer;
  InfoData: Pointer;
  InfoSize: LongInt;
  InfoLen: {$IFDEF WIN32}DWORD; {$ELSE}LongInt; {$ENDIF}
  DataLen: {$IFDEF WIN32}UInt; {$ELSE}Word; {$ENDIF}
  LangPtr: Pointer;
begin
  Result := ´´;
  DataLen := 255;
  if Length(FName) <= 0 then
    exit;
  FName := FName + #0;
  InfoSize := GetFileVersionInfoSize(@Fname[1], InfoLen);
  if (InfoSize > 0) then begin
    GetMem(Info, InfoSize);
    try
      if GetFileVersionInfo(@FName[1], InfoLen, InfoSize, Info) then begin
        if VerQueryValue(Info, ´\VarFileInfo\Translation´, LangPtr, DataLen) then
          InfoType := Format(´\StringFileInfo\¬0.4x¬0.4x\¬s´0,
            [LoWord(LongInt(LangPtr^)), HiWord(LongInt(LangPtr^)), InfoType]);
        if VerQueryValue(Info, @InfoType[1], InfoData, Datalen) then
          Result := strPas(InfoData);
      end;
    finally
      FreeMem(Info, InfoSize);
    end;
  end;
end;


E pode ser implementado assim

VersionFile := GetFileInfo(FileName, ´FileVersion´)

onde FileName é o nome do arquivo.



GOSTEI 0
Airoosp

Airoosp

23/08/2007

Fiz um teste com a função utilizando a DLL e não retornou informação. Funciona apenas para arquivo executável?

Obrigado.

Airton


GOSTEI 0
POSTAR