What are the rules for detecting multiple versions of TC on a machine?

Apr 13, 2010
236
3
58
The Hague
#1
I am writing about getting version info out of the registry, not registering a payed version.

Also, have all versions of TakeCommand always recorded their versions in the same way and/or location?
I would like to know the differences, if any.

Regards, DJ.
 
#2
I think all versions are stored under [HKEY_CURRENT_USER\Software\JP Software] but that is per user - not per machine. Looking elsewhere there is [HKEY_LOCAL_MACHINE\SOFTWARE\JP Software] but the subkeys are for e.g. [HKEY_LOCAL_MACHINE\SOFTWARE\JP Software\{00613661-AD4C-4788-A55A-123CA56693B3}] which points to [HKEY_LOCAL_MACHINE\SOFTWARE\Caphyon\Advanced Installer\Installs\{00613661-AD4C-4788-A55A-123CA56693B3}] and isn't Rex using some Advanced installer?
 
#3
As Take Command is installed through Windows Installer (MSI), you gould enumerate all the keys under HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
and for each key find InstallProperties\DisplayName.

Or...
You could use a WMI query to automate these steps. I use Microsoft's WMIC.exe, but WMIQUERY should do fine, too.

I haven't installed Take Command, so this example will be for Visual C++ runtimes.
Code:
wmic.exe product where "Name like 'Microsoft Visual%'" get Name
Mind the %: that's WMI's version of a (*) wildcard. When this command is used in a batchfile it should be replaced by %%

Output:

Code:
Name
Microsoft Visual C++ 2015 x86 Minimum Runtime - 14.0.24212
Microsoft Visual C++ 2010  x86 Redistributable - 10.0.40219
Microsoft Visual C++ 2013 x86 Minimum Runtime - 12.0.21005
Microsoft Visual C++ 2015 x64 Minimum Runtime - 14.0.24212
Microsoft Visual C++ 2012 x86 Minimum Runtime - 11.0.60610
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.6161
Microsoft Visual C++ 2013 x64 Minimum Runtime - 12.0.21005
Microsoft Visual C++ 2012 x64 Minimum Runtime - 11.0.61030
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.17


EDIT: There's more information available with this WMI query, like InstallDate.
This command gives you all the available information:
Code:
wmic.exe product where "Name like 'Microsoft Visual%'" get  Description, IdentifyingNumber, InstallDate, InstallLocation, InstallState, Name, PackageCache, SKUNumber, Vendor, Version
 
Last edited:
Apr 13, 2010
236
3
58
The Hague
#4
Thanks guys but I did browse the registry up and down, left and right, but before endeavoring to build something I would like to hear from the only reliable source around here.

@Rex: would you be so kind?

Regards, DJ.
 
Nov 2, 2008
180
0
#5
4nt/tc32 up to ver 4 modify the actual exe file, the brand proggie modifies this. vers 5 to 7 store registry data for the brand-key. vers 8 stores it either in the registry, or in an INI file in the app directory.

I have not looked at tcc, but they use a stranger method of registration.

Currently i run 4dos 8, 4nt 8 and tcc 20 under vista 6.1 (seven), and v 18 or something on the surface. But as a matter of exercise, all of the versions i have registration for up to 8 are registered on this computer too.
 

rconn

Administrator
Staff member
May 14, 2008
10,532
94
#6
There isn't any built-in way of detecting multiple versions of TCMD. 99% of our users only run one version, and when they upgrade they overwrite the previous version.

Different versions of TCMD will use different registry key names and values; there is no guarantee that v21 will look like v20.

If you really need to do this, you'll have to enumerate the registry keys as the other responders have said, and you'll probably have to redo it for each new version.