Delphi Windows APK versiyon öğrenme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

Delphi Windows APK versiyon öğrenme

Mesaj gönderen ercan_elo_bil »

merhaba,

Delphi Windows da APK versiyonu öğrenirim?
mağlesef aşağıdaki kod çalışmıyor

var
VerInfoSize, VerValueSize, Dummy: DWORD;
VerInfo: Pointer;
VerValue: PVSFixedFileInfo;
begin
VerInfoSize := GetFileVersionInfoSize(PChar(AppName), Dummy);
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(AppName), 0, VerInfoSize, VerInfo);
VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
with VerValue^ do
begin
V1 := (dwFileVersionMS shr 16) mod $100;
V2 := (dwFileVersionMS and $FFFF) mod $100;
V3 := (dwFileVersionLS shr 16) mod $100;
V4 := (dwFileVersionLS and $FFFF) mod $100;
end;
FreeMem(VerInfo, VerInfoSize);
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: Delphi Windows APK versiyon öğrenme

Mesaj gönderen ertank »

Merhaba,

APK ile kastınız anladığım kadarıyla EXE/DLL gibi dosyaların "Dosya sürümü" (File version) bilgisi. Eğer doğru anladı isem aşağıdaki şekilde bu bilgiyi okumanız mümkün olabilir:

Kod: Tümünü seç

uses
  Winapi.Windows,   // PVSFixedFileInfo definition
  System.SysUtils;  // TFileName


function FileVersion(const FileName: TFileName; const Prefix: string = 'v'): String;
var
  VerInfoSize: Cardinal;
  VerValueSize: Cardinal;
  Dummy: Cardinal;
  PVerInfo: Pointer;
  PVerValue: PVSFixedFileInfo;
begin
  Result := '';
  VerInfoSize := GetFileVersionInfoSize(PChar(FileName), Dummy);
  GetMem(PVerInfo, VerInfoSize);
  try
    if GetFileVersionInfo(PChar(FileName), 0, VerInfoSize, PVerInfo) then
      if VerQueryValue(PVerInfo, '\', Pointer(PVerValue), VerValueSize) then
        with PVerValue^ do
          Result := Prefix + Format('%d.%d.%d.%d', [
            HiWord(dwFileVersionMS), //Major
            LoWord(dwFileVersionMS), //Minor
            HiWord(dwFileVersionLS), //Release
            LoWord(dwFileVersionLS)]); //Build
  finally
    FreeMem(PVerInfo, VerInfoSize);
  end;
end;
ercan_elo_bil
Üye
Mesajlar: 26
Kayıt: 11 Tem 2014 11:13

Re: Delphi Windows APK versiyon öğrenme

Mesaj gönderen ercan_elo_bil »

merhaba,

şöyle serverda Android uygulama(app.apk gibi) var bu dosyanın aynı exe gibi sürüm bilgisi oluyor windows da öğrenemiyorum, yukarıdaki kod işe yaramıyor.
yani windows da android uygulamanın(app.apk gibi) versiyonunu nasıl öğrenirim?
Garbage Collector, Delphi çöp üretmez çöpü bulup temizlemeye asla gerek yoktur... :D
ertank
Kıdemli Üye
Mesajlar: 1651
Kayıt: 12 Eyl 2015 12:45

Re: Delphi Windows APK versiyon öğrenme

Mesaj gönderen ertank »

Merhaba,

Sorunuz ve örnek verdiğiniz kod yanlış anlaşılmaya sebebiyet veriyor.

APK dediğiniz özünde ZIP dosyasıdır. İçinden bilgi öğrenmek için öncelikle ilgili dosya(ları) bir yere açmanız gerekir. Aradığınız bilgi AndroidManifest.xml içinde mevcut. Bilgim dahilinde APK içindeki AndroidManifest.xml dosyası metin dosyası olmuyor. Başka bir deyişle basitçe okunabilir değil.

Kendi adıma APK içindeki AndroidManifest.xml dosyasını Window işletim sistemi altında programlama ile okuma adına hiç çalışma yapmadım.
Cevapla