- #Ms office 2010 sp2 version number how to#
- #Ms office 2010 sp2 version number full#
- #Ms office 2010 sp2 version number plus#
#Ms office 2010 sp2 version number how to#
Please give me some advise how to get exact version of installed Microsoft Office (included service packs)Įxpand collapse popup MsgBox ( 0, '', uf _get _office _ver ( ) ) Func uf _get _office _ver ( ) Dim $ls_key, $ls_return, $ls_pom, $ls_name, $ls_ver1, $ls_ver2, $ls_ver3, $ls_subkey, $ls_value Dim $n, $ul_pom 1) first quick check if Office installed and get approximate version $ls_key = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office" $n = 1 While 1 $ls_subkey = RegEnumKey ( $ls_key, $n ) If Then ExitLoop $ls_value = RegEnumKey ( $ls_key & "\" & $ls_subkey & "\Registration", 1 ) If Not Then $ls_ver1 = $ls_subkey 14.0 $ls_return = 'Microsoft Office ' + $ls_subkey ExitLoop EndIf $n += 1 WEnd If $ls_return = '' Then Return '' isn't Office 2) check exact name/version from Uninstall $ls_key = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall" $n = 0 While 1 $n += 1 $ls_subkey = RegEnumKey ( $ls_key, $n ) If Then ExitLoop $ls_name = RegRead ( $ls_key & "\" & $ls_subkey, "DisplayName" ) If Then ContinueLoop skip other applications than Office and also Office components If Not ( StringInStr ( $ls_name, 'Microsoft Office' ) > 0 And StringInStr ( $ls_name, 'Web Components' ) = 0 ) Then ContinueLoop $ls_pom = RegRead ( $ls_key & "\" & $ls_subkey, "ParentKeyName" ) If Not Then ContinueLoop skip those With Parent $ul_pom = RegRead ( $ls_key & "\" & $ls_subkey, "SystemComponent" ) If Not And $ul_pom = 1 Then ContinueLoop skip SystemComponents = 1 - > MUI(Czech). maybe there could be another way using COM but I don't know exact syntax for some general office COM objectĪnd its properties with product name/version
#Ms office 2010 sp2 version number full#
"C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\MSO.DLL"īut there is problem how to get correct full path from registry I wanted to get get file version of MSO.DLL
#Ms office 2010 sp2 version number plus#
I can get Microsoft Office Professional Plus 2010 (.1000) as result by thisīut in About window of my Word is (.5005) - because I have got SP1 and its version isn't in registry if not found exact version from Uninstall, then return at least approximate version from first step InstallLocation - C:\Program Files (x86)\Microsoft Office\ 3) beware: in registry there isn't version included service packs, therefore check exact version from EXE? (.5005) - SP1 If Left(ls_ver2, Len(ls_ver1)) = ls_ver1 then Microsoft Office Professional Plus 2010 (.1000) note: base version number must be the same with the one from first step
If li_rtn = -1 then continue // skip those without version Li_rtn = RegistryGet(ls_key + ls_subkeylist, "DisplayVersion", RegString!, ls_ver2) If li_rtn = 1 and ul_pom = 1 then continue // skip SystemComponents=1 -> MUI (Czech). Li_rtn = RegistryGet(ls_key + ls_subkeylist, "SystemComponent", ReguLong!, ul_pom) If li_rtn = 1 then continue // skip those with Parent
Li_rtn = RegistryGet(ls_key + ls_subkeylist, "ParentKeyName", RegString!, ls_pom) If not(Pos(ls_name, 'Microsoft Office') > 0 and Pos(ls_name, 'Web Components') = 0) then continue skip other applications than Office and also Office components Li_rtn = RegistryGet(ls_key + ls_subkeylist, "DisplayName", RegString!, ls_name) Ls_key = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall" 2) check exact name/version from Uninstall
If ls_return = '' then return '' // isn't Office Ls_return = 'Microsoft Office ' + ls_subkeylist Li_rtn = RegistryValues(ls_key + ls_subkeylist + "\Registration", ls_valuearray) Li_rtn = RegistryKeys(ls_key, ls_subkeylist) Ls_key = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office" 1) first quick check if Office installed and get approximate version String ls_key, ls_return, ls_pom, ls_name, ls_ver1, ls_ver2, ls_ver3, ls_subkeylist, ls_valuearray Expand collapse popup function uf_get_office_ver()