Come per il titolo, come posso verificare quale versione di DirectX è stata installata da un utente? Il controllo di FeatureLevel non è sufficiente, poiché la mia applicazione può essere eseguita con livello di funzionalità 10.0, ma richiede l'installazione di DirectX 11.1.Verifica quale versione di DirectX è installata
perché questo non è un duplicato:
- How to code to get direct X version on my machine in C#?
- La prima risposta a questa domanda dice: "Se Windows 7, DirectX = 11, se Windows Vista, DirectX = 10". Questo è sbagliato, in quanto Vista supporta sia DirectX 10 che 11 e Windows 7 supporta DirectX 11 e 11.1.
- La seconda risposta fa riferimento a una chiave del Registro di sistema che si applica solo a DirectX 9 e versioni precedenti. Anche su un sistema Windows 7 con DirectX 11.1 installato, questa chiave del Registro non potrà mai indicare una versione installata superiore a 9.0c
- .NET How to detect if DirectX 10 is supported?
- La risposta a questa domanda ancora fa riferimento ancora una volta la stessa chiave di registro per DirectX 9 e SOLO SOLO.
ho bisogno di una risposta che si applica a DirectX 10 installazioni in su. Ciò significa determinare se la loro versione è 10, 10.1, 11 o 11.1.
Un po ', ma è lento e goffo. Da un rapido test al prompt dei comandi, direi che è inaccettabilmente lento. – Telanor
Ne sono consapevole. La cosa peggiore è quando si esegue 'dxdiag/x file.xml' dal prompt dei comandi. Devo ancora aspettare che il file appaia dopo le uscite di processo. È sempre possibile leggere la stringa della versione dal registro 'HKLM \ Software \ Microsoft \ DirectX \ Version' e decodificarla. Modificherò la mia risposta –
Quella chiave di registro si applica solo a directx 9 e inferiore – Telanor