With this program you can list versions of important components and runtimes installed on your system. You can also save it as a report in a text file on your desktop.

Notes:
- This program is compatible with all Windows versions from 5.1 to 6.4 and 10 [XP, 2003, Vista, 2008, 7, 2012, 8, 8.1, 10] x86|x64;
• WinXPx64 | Win2003x64 users may need to install KB960037-XP | KB978334-2003 hotfix for this program to work correctly;
- It's only one .exe - no installation, no changes to user system;
- Available command-line switches:
/offline - runs the program in offline mode (without updates).
/log - save only .txt file without the main screen.
/? - show help.

Tips:
- If you hover the system field (the identified one on the right) you'll see a hint with original product name and version number - useful for users with modified OSes;
- When you hover the DirectX version field you may see a hint if DirectX 9.0c is also installed - on newer OSes;
- In case of getting 'mismatch' status for Flash Plugin, Java or VC++ hover the field for details;
- Colored 'LEDs' determine the state of plugins and allow to download them if necessary, if the plugin is up-to-date double-click on the green diode opens the latest link;
- You can use keyboard shortcuts for: help [F1], .txt file save [CTRL+S] and close [ESC];
- You can change background and text colors also the background image with an .ini file (continue reading for details).

automizzer wrote:Recently I needed something to check versions of installed runtimes on few computers more simple than manual checking in installed programs/components/cpl or other 'info programs' so I have written something like this on my own after that I've added some extra fields and it's quite useful, so maybe someone would like to use/test it too

Last edited by automizzer on Wed Nov 07, 2018 3:29 pm, edited 35 times in total.

5eraph & Kelsenellenelvian - I'm quite confused with this one, because as I've read earlier that Java x86 is enough to run even in x64 OS and also the 'i586' installer on java.com installs both, so I decided that checking for x86 is enough to clearly find that Java is installed. The same confusion about .Netx64...

The Java i586 installer does not install the x64 architecture files on XPx64. Nor does the Java x64 installer include the i586 files. They are separate.

The installer for Vuze (Azureus) will detect the OS architecture and install the appropriate files, either x86 or x64. It requires the appropriate architecture of Java to function. Vuze running on XPx64 requires Java RE x64.

Further, for web applications that require Java, the runtime environment must match the browser. For instance, I use Firefox which is a 32-bit application. Java x64 will not work with 32-bit applications, so I must use the i586 installer in addition to the x64 installer.

Microsoft's .NET 3.5 and 4.0 installers detect the OS architecture and install the appropriate files. On 32-bit OSes, the x86 architecture files are installed. On 64-bit OSes, both the x86 and x64 architecture files are installed.

btw, I install java x86 and x64 on my win81x64 desktop.
you require both on the system depending on if the browser is 32bit or 64bit.
IE off of the start screen tile is 64bit
IE from the desktop is 32bit

user_hidden - It checks the value of [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player ActiveX] key for now, any idea for the Win8.1 key to check? Maybe [HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayerActiveX]?

5eraph - as i understood: if Win is x86 check only for 32bit java and display that "Java RE: Version" and if Win is x64 check for 32/64 and display something like "Java RE (x86): Version" (if only 32 is present) or "Java RE (x64): Version" (if only 64 is present) or even "Java RE (x86/x64): Version" (when both are present)?

I've tried all three of your test versions with the exact same error. I've tried running as admin, made sure that WMI is running, restarted the computer and immediately tried running the apps, tried running the apps from different locations and different discs, and made sure that WindowsScriptHost, such as cscript, works correctly. What now?

automizzer wrote:... or even "Java RE (x86/x64): Version" (when both are present)?

The problem, as 5eraph explained, is that since the x86 and x64 installers are separate, it is possible to end up with different versions for x86 and x64. Not good practice, obviously, but this kind of tool would be a great way to ensure that wasn't the situation, or highlight if it was.

Cheers and Regards

Last edited by bphlpt on Tue Nov 26, 2013 1:06 am, edited 1 time in total.

About Java - not sure of StdRegProv class on x64 but you'll check
It should check only x86 for x86 OS, and both for x64 and display something like 7.0.450 (v7u45) [x86] for x86 only, 7.0.450 (v7u45) [x64] for x64 only, 7.0.450 (v7u45) [x86x64] when x86version=x64version and when versions are different 'Mismatch' status is displayed and a popup explaining differences of versions

user_hidden Flash is now detected from SOFTWARE\Macromedia\FlashPlayerActiveX and SOFTWARE\Macromedia\FlashPlayerPlugin

as for java when I run the exe I get a box popup that tells me
"installed versions of java x86 and x64 are different!!!"
and then lists the versions but they are the same ??
in main screen I get mismatch displayed

user_hidden - thats my bad (sorry for that) thats what you get when you hurry to make a 'quickfix'

bphlpt - I wonder if (could even suppose but not sure) this error is caused by your system. Tried on other Win7x64? Check this simple script -> http://www73.zippyshare.com/v/54561118/file.html if it works, the problem could be with the WMI service... MS about WMI mem leaks: LINK1 | LINK2 though they are included in SP1

Outbreaker - take a closer look to the program window or the screen in first post as Silverlight is being detected from the beginning

Are VB runtimes really required novadays? In Ricks o Kels RuntimePacks I only see msvbvm50.dll, there is msvbvm60.dll in VB6.0SP6 installer but I don't know too much about this...

HMM okay i didn't saw that you already included Silverlight in this Script, looks like i have to take it slow with the Space Cakes.
And VBScript is not so bad i use it to make quick little script with a text editor.
I also used this VBScript addon blow before "user_hidden" included this in his UpdatePack, I hop this addon helps you little bit more.http://www.wincert.net/forum/topic/7665 ... s-2013-02/

I'm definitely not disagreeing that it's possibly something on my end, I just can't figure out what it might be.

Test 5 gave the same error.

scr2.vbs works correctly and gives the correct message box.

I tried the two hotfixes you suggested and both give the message that "The update is not applicable to your computer."

My system is Win7 x64 Ultimate, that is completely up to date according to WU/MU, except for things that I have chosen not to install like Bing toolbars, IE11, etc. There were also some things that I removed when I originally installed it almost two years ago, such as Media Center, and services I have disabled per Black Viper's recommendations, but I can't imagine what could possibly be effecting your script and nothing else that I am aware of. I don't know that I could tell you exactly in what ways my system is different than "stock" at this point, it's been too long since I did it, and nothing else seems "broken". How can I tell if it's a problem with the WMI service and how can I fix it?

If you want to share your source privately with me I'll be happy to try adding extra troubleshooting message boxes if you think that might help identify what I might have removed or disabled that your app depends on. I believe that 5eraph, user_hidden and Kel can verify that I'm trustworthy and won't divulge your code except with your permission.

EDIT: Well, maybe it's not something just on my machine after all. I just tried Test5 on my wife's laptop, Win7 Home Premium x64, I believe it's bone stock, straight from Dell, about 1 1/2 years old, fully up to date per WU/MU and got the exact same error:

Out of memory: 'GetObject'
Script error in line 1, position 0

Now what?

Just curious, but have I been the only one to test this on Win7x64 so far?

OK, to clear things up the Test5 version is from now on v1.1 and new build with only changed version info is in the first post (with new virus scan of course) and this will be the discussed version.

Thank you Guys for your testing time, pointed bugs and suggestions so far

Now the main target is to get this working on bphlpt's Win7x64

Since it's .VBS->WSH based and we know that WSH works the main problem is with WMI... atmzzrSystemCheck connects to WMI and uses Win32_OperatingSystem class to read some data - so if this would work the whole program would also work - when these 2 examples will work without error the problem will be solved: LINK1 | LINK2 (guess there's no difference between 'CIM_OperatingSystem' and 'Win32_OperatingSystem' but I've posted both) example codes are not private so edit in notepad for code

Outbreaker - yeah vbscript is the best easy way to write easy program like this

I have no idea what is going on in my system, and my wife's, when trying to run WMI. Even the simple line:

Set objWMIService = GetObject( "winmgmts://./root/cimv2" )

give the same error:

Out of memory: 'GetObject'

I've seen online many example scripts using similar commands and none of them will work on my system. From reading online I haven't found a link yet on why I should be getting the above error. I'll keep looking, but I would love any suggestions anyone can come up with.

I don't know what the deal is. There is something apparently wrong, both with my machine and my wife's, but I see no other symptom. The OS knows I have a third party anti-virus and firewall, up until now all VBScripts I've ever tried to run have worked fine, but now certain VBScript commands involving WMI don't work. If the problem existed before I was never aware of it so I have no idea how long the problem has existed. And I have no idea how the problem has effected both mine and my wife's machines. I'm confused.

Interesting. After I wrote the above, I thought about whether my firewall/anti-virus might be "protecting" me too much. (I use COMODO Internet Security Premium.) And after some experimentation I discovered my problem was all due to the Auto-Sandbox feature. When that was temporarily disabled, Test5 worked just fine. I have no idea why I have never noticed any other time when this has impacted an app I have tried to run. I also don't know whether it would be possible to have the app work around the "protection", or at least check whether something is in place that will prevent the app from functioning and so warn the user?

But the app seems to work fine.

I will continue to campaign that the x86 and x64 installed versions of Java should be reported separately.

bphlpt - these are good news The program can't try to bypass or work around the protection because it'll be stated as a virus But it could notify about this issue. I've coded something like this: if the program can't connect to WMI it doesn't display an error (like it did so far) - instead of that it pops an information about problems with WMI and instructions. Try this 1.2 version -> http://www4.zippyshare.com/v/80180630/file.html of course try it with sandbox enabled and disabled. You should get this info popup.

Java versions are reported separately when they are not the same. As i wrote here. When system is x86 it check only for x86 and it's the only version displayed. But when system is x64 it detects both separately (like you wanted) but the result is formed to one field: if you have only 32 installed on the x64 it will have [x86] at the end and the same for 64 [x64], when both installed and versions are same it will be [x86/x64]. The last case is for both installed but different versions - the status will be 'mismatch' and popup will show comparison of those versions.
I want to keep Java result in one field because it's important to keep runtimes list clear with no repeats
Isn't this a good solution?
One more thing that comes to mind is to display [--- | x64] ; [x86 | ---] ; [x86 | x64] this could notice the user that something is missing (I mean the '---') and maybe this is what you're trying to point out

vmanda - I've tried AutoIt few years ago but I think I'm doing better in VBScript

Thanks automizzer. The new 1.2 version works the way you wanted it to, with and without sandbox enabled. Good Job.

Sorry, I missed that if the installed Java versions were different that you would identify that. As long as it is done, that's what is important. But I think your idea of "[--- | x64] ; [x86 | ---] ; [x86 | x64]" would be a good compact additional feature as well.

Been reading the postings since they started, just downloaded version 1.2 to see what the program thought I had - no errors - just came up with a list of what is installed. Works great.

Recommend the version number be added to the title bar: atmzzrSystemCheck v1.2.

Also, noticed that the version numbers for the various items listed did not line up as expected; for instance:

Internet Explorer: 11.0.9600.16428
Media Player: 12.0.7601.17514 <--- this one should be one position to the right
DirectX: 11(6.01.7601.17514)

same with Shockwave and Java RE, and .NETv4.5 EX (all minor cosmetic I know but I thought it should be mentioned).

Also, the program lists my system as having .NET v1.1: 11.4322.2503 installed - which is true but further down the list is a comment: *.NET v1.1 Not available for WinVista and higher; which is false as I have it installed. As far as I know .NET v1.1 is not compatible with Win8.1 and will not install in that OS.

ChiefZeke wrote:Also, the program lists my system as having .NET v1.1: 11.4322.2503 installed - which is true but further down the list is a comment: *.NET v1.1 Not available for WinVista and higher; which is false as I have it installed.

v1.3 is out Download and scan in first post
- added version number to the title bar
- added [x86|---], [---|x64], [x86|x64] to Java detection on x64 OS

ChiefZeke - those positions are the best I could get since you can't align text in vbs Characters have different width so I have to add spaces to align text.
About .Net 1.1 - the note about compatibility is displayed for every OS and I got this from Microsoft -> http://msdn.microsoft.com/en-us/library/ms229068 and as far as I know you have to do some tricks to install 1.1 on Win7
Program tries to detect .Net 1.1 on every OS and if it's not detected it displays '----' also if OS is Vista or higher it adds the '*' to read the note and know that it's not required.

About .NET. Maybe it would make sense to only include the two footnotes, (* and **), if they are referenced in the table? So if the app finds versions installed it lists the version numbers, and if it doesn't it adds a footnote. You could also change "(not available*)" to "(not installed*). I would also think that the .NET 4.5 note would only be included if the OS is Vista SP2 or above, but regardless if 4.0 or 4.5 is installed. That way if 4.5 is installed it explains why 4.0 is not listed, and if 4.0 is installed it reminds the user that he could install 4.5 if he wished. I'm not sure what you should do if neither is installed and I'm a little torn if you should show --- (not installed**) or not for the one that is not installed, since you can only have one or the other. Other opinions?

Outbreaker - that's weird, was it detected in previous versions? Nothing was changed in the media player detection from first version. And it was ok on bphlpt's & ChiefZeke's Win7x64 till 1.2
The version of "%PROGRAMFILES%\Windows Media Player\wmplayer.exe" is detected.

bphlpt - my opinion is (and it was same when I coded it) that those footnotes should be absolute on every OS, because those infos are helpful for users using multiple windows versions - just for their knowledge - maybe some users don't know the versions compatibilities so they would know when they read this. Also users that will need to upgrade windows version in the future would remember which version they can install. '----' means that it's not installed so I've decided to use 'not available' as the note says The way I took care of it is when OS is VistaSP2 or 7SP1 it displays "---- (available 4.5**)" and for lower it's "---- (available 4.0**)" - like the note for 1.1 - according to the rule of installing the newest version available and no matter which version is detected user will read the note explaining why 4.0/4.5 is not listed.
Anyway once again .NetFramework causes only confusion like it always did...

Okay i found out why WMP doesn't get detected on my computer, it's because i had uninstalled it a long time ago.
The question now is how to detect it if WMP is uninstalled because uninstalling a Windows Component is not really uninstalled more like hidden.
I also found the "wmplayer.exe" file in this folders:
C:\Windows\winsxs\wow64_microsoft-windows-mediaplayer-core_31bf3856ad364e35_6.1.7601.17514_none_73e472e09a1a05d1
C:\Windows\winsxs\amd64_microsoft-windows-mediaplayer-core_31bf3856ad364e35_6.1.7601.17514_none_698fc88e65b943d6

It's not too good to rely on GUID because it likes to be changed
Do you still have this key (or its IsInstalled dword) after uninstallation of WMP?
It would be wrong to detect WMP version after uninstallation so it's good as it is now

Seems good to me. You have ActiveX installed and it's detected same as in flash .cpl [11.9.900.152] have a closer look
You have no plugin installed = nothing to detect
Whoa, you have no shockwave
Btw it would be nice to figure out something with the text alignment...
//edit: wait, I think I've got something for text alignment, test version in next 12 hours