function GetFileInfo( var aInternalName, aFileVersion: String; FileName: AnsiString ): Boolean; var VersionInfoSize, VerInfoSize, GetInfoSizeJunk: DWORD; VersionInfo, Translation, InfoPointer: Pointer; VersionValue: AnsiString; begin Result := False; VerInfoSize := GetFileVersionInfoSize(PChar(FileName), GetInfoSizeJunk); if VerInfoSize > 0 then begin GetMem(VersionInfo, VerInfoSize); try GetFileVersionInfo(PChar(FileName), 0, VerInfoSize, VersionInfo); VerQueryValue( VersionInfo, '\\VarFileInfo\\Translation', Translation, VerInfoSize ); VersionValue := '\\StringFileInfo\\' + IntToHex(LoWord(LongInt(Translation^)), 4) + IntToHex(HiWord(LongInt(Translation^)), 4) + '\\'; VersionInfoSize := 0;
VerQueryValue( VersionInfo, PChar(VersionValue + 'InternalName'), InfoPointer, VersionInfoSize ); aInternalName := AnsiString(PChar(InfoPointer)); VerQueryValue( VersionInfo, PChar(VersionValue + 'FileVersion'), InfoPointer, VersionInfoSize ); aFileVersion := AnsiString(PChar(InfoPointer)); finally FreeMem(VersionInfo); end; aInternalName := Trim(aInternalName); aFileVersion := Trim(aFileVersion); Result := (aInternalName <> '') and (aFileVersion <> ''); end; end; Marcelo Fortes --- Em seg, 28/7/08, Marcos Ferreira <[EMAIL PROTECTED]> escreveu: De: Marcos Ferreira <[EMAIL PROTECTED]> Assunto: [delphi-br] [MAF] Recuperar valor da versao da aplicacao Para: Data: Segunda-feira, 28 de Julho de 2008, 10:27 Pessoal, Quando definimos a versão de um projeto no Delphi 7, como posso fazer para recuperar essas informações na aplicação? Att, Marcos A. Ferreira Consultor SAP/ABAP São Paulo - SP +55 1183376968 Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar, ou divulgar as informações nela contidas ou tomar qualquer ação baseada nestas informações. Se você recebeu esta mensagem por engano, por favor, avise imediatamente o remetente, respondendo o email e em seguida, apague-o. Agradecemos sua cooperação. This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please, advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation. Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE. ENVIRONMENT commitment and responsibility, think about Before Printing. [As partes desta mensagem que não continham texto foram removidas] Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]