DirectX 9.0c August 2006

(imported topic written by SystemAdmin)

Does anyone have any relevance already created to detect if the August 2006 redistributable for DirectX 9.0c was installed? It looks like it’s easy to determine if DirectX 9.0c was installed, but not neccesarily that the August 2006 installer was used.

-Paul

(imported comment written by brolly3391)

The best I could find on MS:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/DirectXSetupGetVersion.asp

q: values “version” of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX” of registry

A: 4.09.00.0904

T: 0.354 ms

I: plural registry key value

and from that you can make a long “if then else” lookup based on the charts from DX8 and DX9. I did not include logic to handle versions 5,6 and 7 because it uses the other registry key. It would be pretty easy to do with an additional layer of “if then else” but it does not look as clean.

q: (if it=“4.09.00.0904” then “DirectX 9c - Downlevel” else if it=“4.09.00.0903” then “DirectX 9c” else if it=“4.09.00.0902” then “DirectX 9b” else if it=“4.09.00.0901” then “DirectX 9a” else if it=“4.09.00.0900” then “DirectX 9” else if it=“4.08.02.0134” then “DirectX 8.2” else if it=“4.08.01.0901” then “DirectX 8.1 a or b” else if it=“4.08.01.0881” then “DirectX 8.1 XP” else if it=“4.08.01.0810” then “DirectX 8.1 downlevel” else “DirectX not detected”) of value “version” of key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX” of registry

A: DirectX 9c - Downlevel

T: 0.441 ms

I: singular string

On this test machine, dxdiag.exe shows some file dates from 09/30/2006 which leads me to believe that I am on the August 2006 version.

I don’t have the earlier version of DirectX 9c hanging around to test a before and after upgrade. Perhaps you can test this against some of your systems to see if it accuratly distinguishes the August 06 9c against the earlier 9c.

If this approach does not work for you, perhaps you can check the file date or version on one of the dlls in “C:\WINDOWS\Microsoft.NET\DirectX for Managed Code”

Cheers,

Brolly

(imported comment written by Bjowah91)

Hi,

another way is to look non direct x 9 versions

(name of operating system = “Win2000” OR name of operating system = “WinXP”) AND not exists key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX” whose (value “Version” of it as string as version = “4.09.00” as version) of registry

/Björn

(imported comment written by SystemAdmin)

Yeah, the only problem is that with every SDK release the main part of DirectX remains the same (always 4.09.00.0904 in the registry). I’m trying to tell the difference between which SDK redistribuable was used. I’m thinking maybe also looking at some of the DXD3 files, which I’ve heard do change names & version numbers with each release. The current release is Aug 2006.

-Paul