Board logo

标题: Delphi 获取DLL文件中的版本信息 [打印本页]

作者: sgzhou12345    时间: 2010-10-22 15:09     标题: Delphi 获取DLL文件中的版本信息

delphi 获取DLL文件中的版本信息
我想用DELPHI编程加载一个可执行程序(EXE格式)或者库文件(DLL格式)
显示这个文件中所有信息如下图所示:

图片附件: TESTOEM图片信息.jpg (2010-10-22 15:09, 44.49 KB) / 该附件被下载次数 756
http://bbs.lihuasoft.net/attachment.php?aid=2057


作者: sgzhou12345    时间: 2010-10-22 15:17

就是这些信息:
版本:
描述:
版权:
备注:
产品版本:
................................................就这些信息》》》》》》》》》》》》》》》
作者: Nothing    时间: 2010-10-24 22:12

GetFileVersionInfo这个API可以完成你的要求

var
    InfoSize , Zero : DWORD;
    VersionInfo ,Info : Pointer;
    Translation: PLANGANDCODEPAGE;
    InfoPath : String;
begin
    InfoSize := GetFileVersionInfoSize(PChar(NamePath),Zero);
    if InfoSize = 0 then begin
        Exit;
    end;
    GetMem(VersionInfo,InfoSize);
    try
        if Not GetFileVersionInfo(PChar(NamePath),0,InfoSize,VersionInfo) then begin
            Exit;
        end;
        if VerQueryValue(VersionInfo, '\VarFileInfo\Translation ', Pointer(Translation), InfoSize) then
        begin
            InfoPath := '\StringFileInfo\ ' + inttoHex(Translation^.wLanguage, 4) + inttoHex(Translation^.wCodePage, 4) + '\ ';
            GetMem(Info, 2000);
            VerLanguageName(Translation^.wLanguage, Info, 2000);
        end
        else begin//set default value

            InfoPath := '\StringFileInfo\040904E4\ ';
        end;

        if VerQueryValue(VersionInfo, PChar(InfoPath + 'ProductVersion '), Info, InfoSize) then
            S1 := string(PChar(Info)); //版本;

        if VerQueryValue(VersionInfo, PChar(InfoPath + 'CompanyName '), Info, InfoSize) then
            S2 := string(PChar(Info)); //厂商;

        if VerQueryValue(VersionInfo, PChar(InfoPath + 'LegalTrademarks '), Info, InfoSize) then
            S3 := string(PChar(Info)); //

        if VerQueryValue(VersionInfo, PChar(InfoPath + 'FileDescription '), Info, InfoSize) then
            S4 := string(PChar(Info)); //描述;

    finally
        FreeMem(VersionInfo, InfoSize);
    end;
end;

作者: sgzhou12345    时间: 2011-6-14 16:53

不行,不能运行,提示:
Translation: PLANGANDCODEPAGE;




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0