如何确定Delphi应用程序版本问题,怎么解决
答案:1 悬赏:60 手机版
解决时间 2021-04-16 06:30
- 提问者网友:半生酒醒
- 2021-04-15 11:29
如何确定Delphi应用程序版本问题,怎么解决
最佳答案
- 五星知识达人网友:撞了怀
- 2021-04-15 12:45
function ShowVersion:String; // 获得应用程序的版本号
var
VerInfo : PChar;
lpTranslate : PLANGANDCODEPAGE;
FileName:String;
VerInfoSize, VerSize, cbTranslate : DWORD;
VerValueSize : DWORD;
Data : String;
VerFileV:PChar;
lpFileVersion:string;
begin
Result := '0.0.0.0';
FileName := Application.ExeName; // 应用程序对应的 exe 文件
VerInfoSize := GetFileVersionInfoSize(PChar(FileName),VerSize);
if VerInfoSize > 0 then
begin
VerInfo := AllocMem(VerInfoSize);
GetFileVersionInfo(PChar(FileName),0,VerInfoSize,VerInfo);
VerQueryValue(VerInfo, PChar('/VarFileInfo/Translation'), Pointer(lpTranslate),cbTranslate);
if cbTranslate <> 0 then
begin
Data := format('/StringFileInfo/%.4x%.4x/FileVersion',[lpTranslate^.wLanguage,lpTranslate^.wCodePage]);
VerQueryValue(VerInfo, PAnsiChar(data),Pointer(VerFileV), VerValueSize);
if VerValueSize <> 0 then
begin
SetString(lpFileVersion,VerFileV,VerValueSize-1);
Result:=lpFileVersion;
end;
end;
FreeMem(VerInfo,VerInfoSize);
end
else
begin
Result:='0.0.0.0';
Application.MessageBox('获取文件版本信息时遇到致命错误,请重新打开软件。','错误',MB_OK+MB_ICONSTOP);
Application.Terminate;
end;
end;
var
VerInfo : PChar;
lpTranslate : PLANGANDCODEPAGE;
FileName:String;
VerInfoSize, VerSize, cbTranslate : DWORD;
VerValueSize : DWORD;
Data : String;
VerFileV:PChar;
lpFileVersion:string;
begin
Result := '0.0.0.0';
FileName := Application.ExeName; // 应用程序对应的 exe 文件
VerInfoSize := GetFileVersionInfoSize(PChar(FileName),VerSize);
if VerInfoSize > 0 then
begin
VerInfo := AllocMem(VerInfoSize);
GetFileVersionInfo(PChar(FileName),0,VerInfoSize,VerInfo);
VerQueryValue(VerInfo, PChar('/VarFileInfo/Translation'), Pointer(lpTranslate),cbTranslate);
if cbTranslate <> 0 then
begin
Data := format('/StringFileInfo/%.4x%.4x/FileVersion',[lpTranslate^.wLanguage,lpTranslate^.wCodePage]);
VerQueryValue(VerInfo, PAnsiChar(data),Pointer(VerFileV), VerValueSize);
if VerValueSize <> 0 then
begin
SetString(lpFileVersion,VerFileV,VerValueSize-1);
Result:=lpFileVersion;
end;
end;
FreeMem(VerInfo,VerInfoSize);
end
else
begin
Result:='0.0.0.0';
Application.MessageBox('获取文件版本信息时遇到致命错误,请重新打开软件。','错误',MB_OK+MB_ICONSTOP);
Application.Terminate;
end;
end;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯