Hallo zusammen,
srry für die eventuelle Leichenschändung, aber ich fand den Code sehr sehr hilfreich - dickes Danke.
Ich hab ihn ein wenig erweitert, sodass er tatsächlich auf ein installiertes Word prüft, die oben gezeigten Versionen prüfen nur auf ein installiertes Office - konstruierterweise müsste dabei das Word ja gar nicht installiert sein.
So, anbei der Code für Office und Word Prüfung:
Function GetOfficeVersion() As String
Const REGOFFICE_97 = "Software\\Microsoft\\Office\\8.0\\Common\\InstallRoot"
Const REGOFFICE_2000 = "Software\\Microsoft\\Office\\9.0\\Common\\InstallRoot"
Const REGOFFICE_XP = "Software\\Microsoft\\Office\\10.0\\Common\\InstallRoot"
Const REGOFFICE_2003 = "Software\\Microsoft\\Office\\11.0\\Common\\InstallRoot"
Const REGOFFICE_2007 = "Software\\Microsoft\\Office\\12.0\\Common\\InstallRoot"
Const REGOFFICE_2010 = "Software\\Microsoft\\Office\\13.0\\Common\\InstallRoot"
Const OFFICENAME_97 = "Office 97"
Const OFFICENAME_2000 = "Office 2000"
Const OFFICENAME_XP = "Office XP"
Const OFFICENAME_2003 = "Office 2003"
Const OFFICENAME_2007 = "Office 2007"
Const OFFICENAME_2010 = "Office 2010"
Dim formula As String
Dim OfficeVersions List As String
Dim v As Variant
'----------------------------------------------------------------------
' Initialize all possible versions
'----------------------------------------------------------------------
OfficeVersions(OFFICENAME_97) = REGOFFICE_97
OfficeVersions(OFFICENAME_2000) = REGOFFICE_2000
OfficeVersions(OFFICENAME_XP) = REGOFFICE_XP
OfficeVersions(OFFICENAME_2003) = REGOFFICE_2003
OfficeVersions(OFFICENAME_2007) = REGOFFICE_2007
OfficeVersions(OFFICENAME_2010) = REGOFFICE_2010
'----------------------------------------------------------------------
' Test for version
'----------------------------------------------------------------------
ForAll o In OfficeVersions
formula$ = | (@RegQueryValue("HKEY_LOCAL_MACHINE"; "| & o & |";"Path")) |
v = Evaluate( formula$ )
If v(0) <> "" Then
GetOfficeVersion = ListTag(o)
Exit Function
End If
End ForAll
GetOfficeVersion = ""
End Function
Function GetWordVersion() As String
Const REGWORD_97 = "Software\\Microsoft\\Office\\8.0\\Word\\Common\\InstallRoot"
Const REGWORD_2000 = "Software\\Microsoft\\Office\\9.0\\Word\\Common\\InstallRoot"
Const REGWORD_XP = "Software\\Microsoft\\Office\\10.0\\Word\\Common\\InstallRoot"
Const REGWORD_2003 = "Software\\Microsoft\\Office\\11.0\\Word\\Common\\InstallRoot"
Const REGWORD_2007 = "Software\\Microsoft\\Office\\12.0\\Word\\Common\\InstallRoot"
Const REGWORD_2010 = "Software\\Microsoft\\Office\\13.0\\Word\\Common\\InstallRoot"
Const WORDNAME_97 = "Word 97"
Const WORDNAME_2000 = "Word 2000"
Const WORDNAME_XP = "Word XP"
Const WORDNAME_2003 = "Word 2003"
Const WORDNAME_2007 = "Word 2007"
Const WORDNAME_2010 = "Word 2010"
Dim formula As String
Dim WordVersions List As String
Dim v As Variant
'----------------------------------------------------------------------
' Initialize all possible versions
'----------------------------------------------------------------------
WordVersions(WORDNAME_97) = REGWORD_97
WordVersions(WORDNAME_2000) = REGWORD_2000
WordVersions(WORDNAME_XP) = REGWORD_XP
WordVersions(WORDNAME_2003) = REGWORD_2003
WordVersions(WORDNAME_2007) = REGWORD_2007
WordVersions(WORDNAME_2010) = REGWORD_2010
'----------------------------------------------------------------------
' Test for version
'----------------------------------------------------------------------
ForAll w In WordVersions
formula$ = | (@RegQueryValue("HKEY_LOCAL_MACHINE"; "| & w & |";"Path")) |
v = Evaluate( formula$ )
If v(0) <> "" Then
GetWordVersion = ListTag(w)
Exit Function
End If
End ForAll
GetWordVersion = ""
End Function
lg
Harald