Delphi android windows IOS通用获取程序版本
2022-11-17 16:24:29 作者:admin
本文整理自网络,侵删。
{$IFDEF MSWINDOWS}
uses Winapi.Windows, ShlObj, FMX.PlatForm.Win, ShellAPI;{$ENDIF}{$IFDEF ANDROID}
uses Androidapi.JNI.JavaTypes, Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText;{$ENDIF}
//上面引用仅供参考
{$IFDEF ANDROID}
function GetAppVersion: String;var PackageManager: JPackageManager; PackageInfo: JPackageInfo;begin PackageManager := TAndroidHelper.Context.getPackageManager; PackageInfo := PackageManager.getPackageInfo (TAndroidHelper.Activity.getPackageName, 0); Result := JStringToString(PackageInfo.versionName);end;{$ENDIF}// {$IFDEF MACOS}// begin// Result := '';// end;// {$ENDIF}
{$IFDEF IOS}
function GetAppVersion: String;begin Result := string(TNSString.Wrap(CFBundleGetValueForInfoDictionaryKey (CFBundleGetMainBundle, kCFBundleVersionKey)).UTF8String);end;{$ENDIF}{$IFDEF MSWINDOWS}
function GetAppVersion: String;const Fmt = '%d.%d.%d.%d';
var sFileName: String; iBufferSize: DWORD; iDummy: DWORD; pBuffer: Pointer; pFileInfo: Pointer; iVer: array [1 .. 4] of Word;begin // set default value Result := '';
// prepare buffer for path and terminating #0 SetLength(sFileName, MAX_PATH + 1); SetLength(sFileName, GetModuleFileName(hInstance, PChar(sFileName), MAX_PATH + 1));
// get size of version info (0 if no version info exists) iBufferSize := GetFileVersionInfoSize(PChar(sFileName), iDummy); if (iBufferSize > 0) then begin GetMem(pBuffer, iBufferSize); try // get fixed file info (language independent) GetFileVersionInfo(PChar(sFileName), 0, iBufferSize, pBuffer); VerQueryValue(pBuffer, '\', pFileInfo, iDummy); // read version blocks iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS); iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS); iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS); iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS); finally FreeMem(pBuffer); end; // format result string Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]); end;end;{$ENDIF} 相关阅读 >>
Delphi 提升进程权限
Delphi xe httpencode
Delphi 如何删除动态数组的指定元素
Delphi下程序内存泄露报告
Delphi 用stringhelper.split分解字符串
Delphi 字符串的分割
Delphi 扫二维码并识别
Delphi 用idhttp获取utf-8编码的网页
Delphi xe增强的rtti妙用--动态创建包中的窗口类
Delphi程序的exe和dll文件添加版本信息
更多相关阅读请进入《Delphi》频道 >>
猜你喜欢
联络方式:
400-123-789
邮箱:xiachao@163.com
Q Q:12345678
微信公众号
微信二维码
