Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   TWindowsStore (https://www.delphipraxis.net/201236-twindowsstore.html)

Michael II 4. Jul 2019 00:57

TWindowsStore
 
Weiss jemand, ob man TWindowsStore wiederholt zur Laufzeit erzeugen kann? Oder führt dies zu Problemen?

http://docwiki.embarcadero.com/RADSt...tore_Component

Delphi-Quellcode:
function TSwissJassForm.UWPOK( var LRemainingTrialDays : integer ) : integer;
// -1 : Fehler, 0 : AppLicense.isActive=false, 1 : Trial, 2 : Voll
var
  WindowsStore1 : TWindowsStore;
  res : integer;

begin
  res := -1;
  LRemainingTrialDays := -1;
try
  WindowsStore1 := TWindowsStore.Create( self );
 try
  if WindowsStore1.AppLicense.IsActive then
  begin
    if WindowsStore1.AppLicense.IsTrial then
    begin
      LRemainingTrialDays := WindowsStore1.AppLicense.TrialTimeRemaining.Days;
      res := 1;
    end
    else
    begin
      res := 2;
    end;
  end
  else
  begin
    res := 0;
  end;
  // http://docwiki.embarcadero.com/RADStudio/Rio/en/Using_the_WindowsStore_Component
 finally
  WindowsStore1.Free;
 end;
except
  ShowMessage( 'Swiss Jass!! kann WindowsStore.AppLicense nicht lesen.' );
end;
 Result := res;
end;

Wenn die Testzeit abgelaufen ist, dann gibt die Funktion 0 zurück (und nicht 1 und LRemainingTrialDays<=0)?

Microsoft will neu für Spiele auch "nicht UWP Apps" erlauben. Hat jemand von euch ein Spiel im Windows Store und bereits umgestellt?

Michael II 4. Jul 2019 22:34

AW: TWindowsStore
 
Ich verwende nun obige Funktion, habe aber TWindowsStore auf die Hauptform gelegt und erzeuge die Komponente nicht zur Laufzeit.

Ich habe eine App in den Microsoft Store raufgeladen und biete einen Testzeitraum von 7 Tagen an.

Meine App habe ich als Testversion aus dem Store heruntergeladen. Obige Funktion erkennt korrekt auf Testversion, aber
WindowsStore1.AppLicense.TrialTimeRemaining.Days; liefert 10'675'199 zurück... also etwas viel Tage.

Hat irgendwer irgendeinen Rat?

hoika 5. Jul 2019 04:21

AW: TWindowsStore
 
Hallo,
das GitHub-Beispiel berechnet das Ablaufdatum anders

https://github.com/Microsoft/Windows...de.xaml.cs#L82

Michael II 5. Jul 2019 08:29

AW: TWindowsStore
 
Besten Dank hoika für deine Antwort.

Ich verwende zur Berechnung der verbleibenden Testzeit die Anleitung zu TWindowsStore von der embarcadero Seite:

http://docwiki.embarcadero.com/RADSt...tore_Component

oder wie es hier beschrieben wird:

https://blogs.msmvps.com/bsonnino/20...twindowsstore/


Es gibt doch hier sicher zig Millionen Entwickler, welche auch eine App im Microsoft Store haben. Liefert bei euch

WindowsStore1.AppLicense.TrialTimeRemaining.Days

korrekte Werte?

In WinAPI.WindowsStore.pas wird FTrialTimeRemaining berechnet.
FTrialTimeRemaining := TTimeSpan.Create(AStoreLicense.TrialTimeRemaining. Duration);

TTimeSpan.Create( high(int64) ).Days entspricht der von meiner App ausgegebenen 10'675'199 Tagen, was sehr wahrscheinlich "Testversion läuft nicht ab" entspricht.

Wahrscheinlich würde auch die von dir (hoika) verlinkte Variante ein "läuft nicht ab" Datum zurück geben.

Kurz zusammengefasst.
Meine als Testversion heruntergeladene App ermittelt offenbar diese Werte:
WindowsStore1.AppLicense.IsActive = TRUE
WindowsStore1.AppLicense.IsTrial = TRUE
WindowsStore1.AppLicense.TrialTimeRemaining.Days = TTimeSpan.Create( high(int64) ).Days

Wenn ich im Windows Store meine App suche, dann steht dort aber korrekt, dass meine Testversion in 6 Tagen abläuft. Ich hoffe mal dass dieser Wert stimmt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz