2015-04-21 10 views
6

Ho un'app universale che utilizza i video protetti da DRM di PlayReady. Il problema con PlayReady è che funziona solo se l'architettura di build dell'applicazione corrisponde all'architettura della CPU (ad es. ARM build su ARM, x64 su CPU a 64 bit, x86 su CPU a 32 bit). Questo è di progettazione (per qualche ragione).Rilevare se la CPU è 64 bit nell'app universale (Windows)

Quindi il problema è che se un utente ha una CPU a 64 bit ed esegue un sistema operativo a 32 bit. In questo caso, ottiene la build x86 dallo store (a causa del sistema operativo a 32 bit), ma PlayReady non funzionerà a causa della mancata corrispondenza tra il CPI a 64 bit e X86. In questo caso, voglio visualizzare un messaggio (invece di non riuscire a riprodurre il video).

Sono in grado di rilevare facilmente rilevare x86 build (aggiungendo un simbolo condizionale), ma come faccio a rilevare se la CPU è a 64 bit? Non c'è niente come System.Environment.Is64BitOperatingSystem da .NET completo.

+0

http://stackoverflow.com/questions/767613/identifying-the-cpu-architecture-type-using-c-sharp vedere la risposta sull'utilizzo di P/Invoke per ottenere l'architettura del processore –

+0

dubito che questo sia reale problema, va solo sbagliato sulla tua macchina. Chi scarica l'app dallo Store ottiene automaticamente la versione appropriata. –

+0

@ HansPassant no. Immagina di avere un tablet con Atom a 64 bit e Windows 8.1 a 32 bit. Il negozio ti darà un X86 costruito e PlayReady non funzionerà per te. –

risposta

2

È consentito P/Invoke Win32 GetNativeSystemInfo nelle app di Windows Store (ulteriori informazioni sulla firma P/Invoke here); restituisce una struttura che include l'architettura del processore.
Non riesco a trovare alcuna informazione su cosa restituisce in uno scenario x86 Windows su macchina x64, e non ho una macchina del genere a disposizione per testarlo, ma vale la pena provarlo.

+0

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post. – dotctor

+0

@dotctor: ho modificato il post per rendere la risposta più esplicita. –

Problemi correlati