File-based algorithm for detecting Windows Media Center version
A while ago, I posted an item describing how to use a registry value to detect what version of Windows Media Center (if any) is installed on a system. Since then, we have found a couple of scenarios where this registry value can be overwritten and left in an inconsistent state so that it is not completely reliable for determining the version of Windows Media Center on a system:
- Repairing or reinstalling Windows XP SP2 on Windows XP Media Center Edition 2005 or higher
- Installing an incorrectly authored Windows Media Center add-in package
We have worked with a few add-in developers to fix their installers, so the second scenario rarely happens anymore, but the first problem still exists and the only way to fix the system once it gets into that state is to manually update the versioned registry key.
Instead of checking a registry value, it is also possible to use file version information to determine which version of Windows Media Center is on a system. The following table lists the various versions of Windows Media Center, the version registry value that should exist on the system, and a file version you can use to double-check that the expected version of Windows Media Center is actually installed as expected.
|Windows Media Center version||Registry-based version||File-based version|
|Windows XP Media Center Edition 2002||Any value < 2.0||5.1.2600.1106|
|Windows XP Media Center Edition 2004 (Windows XP SP1-based hotfix package)||2.0||5.1.2600.1217|
|Windows XP Media Center Edition 2004 (Windows XP SP1-based full OS release)||2.7||5.1.2600.2096|
|Windows XP Media Center Edition 2004 (Windows XP SP2-based)||2.8||5.1.2600.2180|
|Windows XP Media Center Edition 2005||3.0||5.1.2700.2180|
|Update Rollup 1 for Windows XP Media Center Edition 2005||3.1||5.1.2700.2230|
|Update Rollup 2 for Windows XP Media Center Edition 2005||4.0||5.1.2710.2732|
|Windows Media Center in Windows Vista Home Premium and Ultimate Editions||5.0||6.0.* (Windows Vista has not yet shipped so the file version is to be determined)|
The following registry value is used to store the Windows Media Center version that is referenced in the middle column above:
- Key name: HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\Media Center
- Registry value name: Ident
- Registry value data type: REG_SZ
To detect the file version, I suggest using the main Windows Media Center shell executable, located at %windir%\ehome\ehShell.exe.
One other note here - due to some OS setup architectural changes in Windows Vista, we have not seen and do not expect to see the registry value that stores version information being overwritten on Windows Vista. It is safe to check the registry value and not worry about also checking file versions on Windows Vista. However, it is recommended to check file versions on Windows XP Media Center systems because of the issues we've seen where the registry value is out of sync with the actual installed version of Windows Media Center on the system.