Lotus Notes / Domino Sonstiges > Tipps und Tricks

installierte Office Version ermitteln

<< < (2/2)

eknori (retired):
Danke für deinen Tip  :D


--- Zitat ---kann man sicher sein, das alle anderen Werte leer sind, wenn eine neue Version von Word installiert ist?

--- Ende Zitat ---

Ich habe es stichprobenartig mal an mehreren Rechnern bei uns im Betrieb gechecked; sieht so aus, als könnte man sich darauf verlassen, daß nur in der installierten Version der Key vorhanden ist

spookycoder:
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:


--- Code: ---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

--- Ende Code ---

lg

Harald

shiraz:
kleine Änderung bei Office 2010


Office 2000 -  9.0
Office XP   - 10.0
Office 2003 - 11.0
Office 2007 - 12.0
Office 2010 - 14.0 !!!!


Gruß
Christian

ata:
... das liegt wohl am Apollo-13-Syndrom  ;D ;D ;D

Toni

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln