From: Les on
Is there a way to find out the version of DirectX on a system from VBScript?

Currently, we determine the version of DirectX via a VBScript by looking at
the
registry entry of HKLM\Software\Microsoft\DirectX\Version

This worked OK with Windows XP and Windows Server 2003, however for Windows
Vista and for Server 2008, this registry key indicates DirectX 9 instead of
10. The reason given for that is that DirectX 9 exists in Vista and Server
2008 for backward compatibility purposes.

Using dxdiag we can see that the DirectX version is indeed 10, but we cannot
use dxdiag within a script (easily) without writing the version to a file
with dxdiag and then reading it in, which is a little unreliable and "clunky".

Do you know of a way of determining, either by registry or other means, what
the version of DirectX is.

We use this script for patching machines and servers and need to determine
the correct patch for those that are DirectX level dependent. Currently our
script is no longer working in a mixed XP/Vista/Server2003/Server2008
environment.

Thanks for your help.
Cheers,
Les

From: TDM on

"Les" <Les(a)discussions.microsoft.com> wrote in message news:0D3389D8-05C5-40A7-9F36-95FDBE579A74(a)microsoft.com...
> Is there a way to find out the version of DirectX on a system from VBScript?
>
> Currently, we determine the version of DirectX via a VBScript by looking at
> the
> registry entry of HKLM\Software\Microsoft\DirectX\Version
>
> This worked OK with Windows XP and Windows Server 2003, however for Windows
> Vista and for Server 2008, this registry key indicates DirectX 9 instead of
> 10. The reason given for that is that DirectX 9 exists in Vista and Server
> 2008 for backward compatibility purposes.
>
> Using dxdiag we can see that the DirectX version is indeed 10, but we cannot
> use dxdiag within a script (easily) without writing the version to a file
> with dxdiag and then reading it in, which is a little unreliable and "clunky".
>
> Do you know of a way of determining, either by registry or other means, what
> the version of DirectX is.
>
> We use this script for patching machines and servers and need to determine
> the correct patch for those that are DirectX level dependent. Currently our
> script is no longer working in a mixed XP/Vista/Server2003/Server2008
> environment.
>
> Thanks for your help.
> Cheers,
> Les
>

One thing you could do via the .Run or .Exec method
is "dxdiag /x dxdiag.xml" and parse the XML file for
"DirectXVesion". Just a thought.

TDM
From: Les on
Thanks TDM,

Yes, I'd thought of that, writing to a txt file or xml and then searching
there. The xml would be better as its structure is more likely to stay
consistent over time/versions of dxdiag. Its just a bit "clunky" to do that,
and when this script runs over hundreds of servers, there needs to be a
consistent place to write a file to (permissions etc).

There is a way to find out the directx version with C++ code, in a similar
way to DXDIAG, but of course this will not work in VBScript, and I'm not
familiar enough with C++

Thanks for helping.
Cheers,
Les

"TDM" wrote:

>
> "Les" <Les(a)discussions.microsoft.com> wrote in message news:0D3389D8-05C5-40A7-9F36-95FDBE579A74(a)microsoft.com...
> > Is there a way to find out the version of DirectX on a system from VBScript?
> >
> > Currently, we determine the version of DirectX via a VBScript by looking at
> > the
> > registry entry of HKLM\Software\Microsoft\DirectX\Version
> >
> > This worked OK with Windows XP and Windows Server 2003, however for Windows
> > Vista and for Server 2008, this registry key indicates DirectX 9 instead of
> > 10. The reason given for that is that DirectX 9 exists in Vista and Server
> > 2008 for backward compatibility purposes.
> >
> > Using dxdiag we can see that the DirectX version is indeed 10, but we cannot
> > use dxdiag within a script (easily) without writing the version to a file
> > with dxdiag and then reading it in, which is a little unreliable and "clunky".
> >
> > Do you know of a way of determining, either by registry or other means, what
> > the version of DirectX is.
> >
> > We use this script for patching machines and servers and need to determine
> > the correct patch for those that are DirectX level dependent. Currently our
> > script is no longer working in a mixed XP/Vista/Server2003/Server2008
> > environment.
> >
> > Thanks for your help.
> > Cheers,
> > Les
> >
>
> One thing you could do via the .Run or .Exec method
> is "dxdiag /x dxdiag.xml" and parse the XML file for
> "DirectXVesion". Just a thought.
>
> TDM
>