Autor Thema: installierte Office Version ermitteln  (Gelesen 16573 mal)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
installierte Office Version ermitteln
« am: 03.02.05 - 09:57:11 »
Hier ein kleiner Tip, wie man mit @RegQueryValue die installierte Office Version ermittelt ( Office97, Office2000, OfficeXP )
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline joringel

  • Aktives Mitglied
  • ***
  • Beiträge: 105
  • Geschlecht: Männlich
Re: installierte Office Version ermitteln
« Antwort #1 am: 03.02.05 - 11:31:26 »
Ist Dir da ein Tippfehler unterlaufen? Müsste m.E. so aussehen:

_retVal:=
@If(
@RegQueryValue("HKEY_LOCAL_MACHINE"; "Software\\Microsoft\\Office\\8.0\\Common\\InstallRoot"; "Path")!="";"Office 97";
@RegQueryValue("HKEY_LOCAL_MACHINE"; "Software\\Microsoft\\Office\\9.0\\Common\\InstallRoot"; "Path")!="";"Office 2000";
@RegQueryValue("HKEY_LOCAL_MACHINE"; "Software\\Microsoft\\Office\\10.0\\Common\\InstallRoot"; "Path")!="";"Office XP";
"no Office installed");
@Prompt([Ok];" ";_retVal)

Trotzdem sehr brauchbar, danke.

Gruss
Joringel
Nenne nie einen Server 'Lokal'...

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: installierte Office Version ermitteln
« Antwort #2 am: 04.02.05 - 08:12:22 »
Ist Dir da ein Tippfehler unterlaufen?


Wo soll denn der Tippfehler sein? Das sieht doch genauso aus.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: installierte Office Version ermitteln
« Antwort #3 am: 04.02.05 - 08:25:56 »
ich habe das gestern noch korrigiert; mein CMS hat irgendwie Probleme mit den Backslashes
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline cgorni

  • Junior Mitglied
  • **
  • Beiträge: 54
  • Geschlecht: Männlich
Re: installierte Office Version ermitteln
« Antwort #4 am: 25.02.05 - 16:21:46 »
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

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: installierte Office Version ermitteln
« Antwort #5 am: 25.02.05 - 16:25:20 »
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?

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
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline spookycoder

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
  • Harald
    • Harrys Blog
Re: installierte Office Version ermitteln
« Antwort #6 am: 12.02.10 - 13:00:18 »
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

lg

Harald

Offline shiraz

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 648
  • Geschlecht: Männlich
Re: installierte Office Version ermitteln
« Antwort #7 am: 12.09.11 - 15:46:05 »
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
Gruß
Christian

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: installierte Office Version ermitteln
« Antwort #8 am: 13.09.11 - 07:56:08 »
... das liegt wohl am Apollo-13-Syndrom  ;D ;D ;D

Toni
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz