Danke für den Tip. Kann ich wirklich gut gebrauchen, da ich öfter mal was mit Word und OLE mache. Deswegen: hier die version für LotusScript.
------ SNIP -----
Function getWordVersion() As String
Const REGWORD_97 = "Software\\Microsoft\\Office\\8.0\\Common\\InstallRoot"
Const REGWORD_2000 = "Software\\Microsoft\\Office\\9.0\\Common\\InstallRoot"
Const REGWORD_XP = "Software\\Microsoft\\Office\\10.0\\Common\\InstallRoot"
Const REGWORD_2003 ="Software\\Microsoft\\Office\\11.0\\Common\\InstallRoot"
Const WORDNAME_97 = "Office 97"
Const WORDNAME_2000 = "Office 2000"
Const WORDNAME_XP = "Office XP"
Const WORDNAME_2003 = "Office 2003"
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
'----------------------------------------------------------------------
' 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
------ SNIP -----
Das kann man bestimmt noch aufbohren, um andere Software abzufragen.
Aber hier noch eine Frage: kann man sicher sein, das alle anderen Werte leer sind, wenn eine neue Version von Word installiert ist?
Gruß,
Christian