Ich habe eine universelle App, die PlayReady DRM-geschützte Videos verwendet. Das Problem mit PlayReady besteht darin, dass es nur funktioniert, wenn die Build-Architektur der Anwendung der CPU-Architektur entspricht (z. B. ARM-Build auf ARM, x64 auf 64-Bit-CPU, x86 auf 32-Bit-CPU). Dies ist Absicht (aus irgendeinem Grund).Erkennen, ob die CPU in Universal App (Windows) 64 Bit ist
Das Problem ist also, wenn ein Benutzer eine 64-Bit-CPU hat und ein 32-Bit-Betriebssystem ausführt. In diesem Fall erhält er den x86-Build aus dem Speicher (wegen des 32-Bit-Betriebssystems), aber PlayReady wird nicht funktionieren, da 64-Bit-CPI-zu-X86-Build nicht übereinstimmen. In diesem Fall möchte ich eine Nachricht anzeigen (anstatt das Video einfach nicht abzuspielen).
Ich kann leicht erkennen x86 Build (durch Hinzufügen eines bedingten Symbols), aber wie erkenne ich, ob die CPU 64bit ist? Es gibt nichts wie System.Environment.Is64BitOperatingSystem
von der vollständigen .NET.
http://stackoverflow.com/questions/767613/identifying-the-cpu-architecture-type-using-c-sharp siehe die Antwort über die Verwendung von P/Invoke, um die Prozessorarchitektur zu erhalten –
Ich bezweifle, dass dies eine echte ist Problem, es geht nur falsch auf Ihrer Maschine. Wer die App aus dem Store herunterlädt, erhält automatisch die entsprechende Version. –
@HansPassant Nein. Stellen Sie sich vor, Sie haben ein Tablet mit 64bit Atom und Windows 8.1 32bit. Das Geschäft wird Ihnen einen X86 bauen und PlayReady wird nicht für Sie arbeiten. –