mummi 10 Geschrieben 6. Juni 2005 Melden Teilen Geschrieben 6. Juni 2005 Hallo, wie kann ich denn mit vbs die Office-Version aus der Registry auslesen? Hab dazu irgendwie nichts gefunden. Danke, Mummi Zitieren Link zu diesem Kommentar
learner 10 Geschrieben 7. Juni 2005 Melden Teilen Geschrieben 7. Juni 2005 Hallo mummi, Hab mal auf die Schnelle was gebastelt. Wenn auch nicht besonders elegant, glaub ich... ;) CheckOffice.vbs Dim WSHShell, office Set WSHShell = CreateObject("WScript.Shell") Select Case True Case ChkOffice("11.0") : office = "Office 2003 installiert" Case ChkOffice("10.0") : office = "Office XP installiert" Case ChkOffice("9.0") : office = "Office 2000 installiert" Case ChkOffice("8.0") : office = "Office 97 installiert" Case Else : office = "Kein Office installiert" End Select MsgBox office,64,"CheckOffice.vbs" Function ChkOffice(ver) Dim pfad, res On Error Resume Next pfad = "HKLM\Software\Microsoft\Office\" & ver & "\Common\InstallRoot\Path" res = WSHShell.RegRead(pfad) If res <> "" Then ChkOffice = True End Function Das Script prüft in welchem RegistrySchlüssel der Eintrag "Path" existiert, in Abhängigkeit der Versionsnummer des "erfolgreichen Pfads" kann man die installierte Version erkennen. Habe es allerdings nur unter WinXP mit Office 2003 testen können... Hoffe es hilft trotzdem! :) viele Grüße learner Zitieren Link zu diesem Kommentar
mummi 10 Geschrieben 8. Juni 2005 Autor Melden Teilen Geschrieben 8. Juni 2005 Super, danke dir. Genau danach habe ich gesucht. Grüße, Mummi Zitieren Link zu diesem Kommentar
micha42 29 Geschrieben 8. Juni 2005 Melden Teilen Geschrieben 8. Juni 2005 WinXP mit OfficeXP geht auch. klasse Script. Find ich immer gut viele Scripts zu lesen, testen und (versuchen) zu verstehen. Zitieren Link zu diesem Kommentar
Letze01 10 Geschrieben 16. Januar 2006 Melden Teilen Geschrieben 16. Januar 2006 Hay hay, ließe sich das Script eventuell auch noch in der Form erweitern, dass ein bestimmtes Office-Programm z.B. Outlook damit gestartet werden könnte? Zitieren Link zu diesem Kommentar
fisch-li 10 Geschrieben 16. Januar 2006 Melden Teilen Geschrieben 16. Januar 2006 is bloß ein kleiner "bug" drin. wenn du z.b. word / excel 2000 drauf hast und outlook 2003 installierst, wird trotzdem office 2003 angezeigt. vielleicht wäre die sicherste variante die dateigrößen von excel.exe, word.exe etc. zu prüfen. so kann man sogar rausfinden, welches SP drin ist... also quasi: if filesize == xxxxx bytes than word xxxx, excel xxxx etc. Zitieren Link zu diesem Kommentar
Letze01 10 Geschrieben 16. Januar 2006 Melden Teilen Geschrieben 16. Januar 2006 Hay hay, da hast Du wohl (leider) recht :( Dennoch denke ich, sollte die Vorgehensweise für "normale" Installationen akzeptabel sein. Würde mich also freuen, wenn mir jemand sagen könnte wie man das Script anpassen kann :) Zitieren Link zu diesem Kommentar
learner 10 Geschrieben 26. Februar 2006 Melden Teilen Geschrieben 26. Februar 2006 Hallo zusammen, war ein paar Wochen weg, daher hab ich erst jetzt den Thread gelesen. Ich habe das Skript ein wenig erweitert, um eine detailierte Liste der installierten Office-Komponenten mit ausführlichen Versionsnummern auszugeben. ChkOffice.vbs Dim WSHShell, objFSO, textout Set objFSO = CreateObject("Scripting.FileSystemObject") Set WSHShell = CreateObject("WScript.Shell") Dim part(4,1) part(0,0) = "Word" : part(1,1) = "WINWORD.EXE" part(1,0) = "Excel" : part(2,1) = "EXCEL.EXE" part(2,0) = "Outlook" : part(4,1) = "OUTLOOK.EXE" part(3,0) = "PowerPoint" : part(0,1) = "POWERPNT.EXE" part(4,0) = "Access" : part(3,1) = "MSACCESS.EXE" textout = "Installierte Office-Anwendungen:" & vbCRLF & vbCRLF Call ChkOffice("11.0","2003") Call ChkOffice("10.0","XP") Call ChkOffice("9.0", "2000") Call ChkOffice("8.0", "97") MsgBox textout,64,"CheckOffice.vbs" Function ChkOffice(ver, verfull) Dim pfad, res, helptext On Error Resume Next pfad = "HKLM\Software\Microsoft\Office\" & ver & "\Common\InstallRoot\Path" res = WSHShell.RegRead(pfad) If res <> "" Then For i = 0 to 4 If objFSO.FileExists(res&part(i,1)) Then helptext = part(i,0) & Space(1) & verfull & " (" & objFSO.GetFileVersion(res&part(i,1))&")" textout = textout & helptext & vbCRLF End If Next textout = textout & vbCRLF End If End Function Die Liste der Office-Anwendungen unter part(x,y) kann natürlich erweitert werden, dabei muss der Wert bei Dim part(4,1) auf part(5,1) erhöht werden, ebenso die 4 in der For Schleife... Das Starten der Anwendungen aus dem Skript heraus übersteigt meine Fähigkeiten, da dynamisch Buttons für jede Anwendung erzeugt werden müssten. Da bin ich überfragt... :rolleyes: Würde mich über ein kurzes Feedback freuen, da ich es auch wieder nur unter WinXP und Office 2003 testen konnte. :) Viele Grüße learner Zitieren Link zu diesem Kommentar
e2e4 10 Geschrieben 27. Februar 2006 Melden Teilen Geschrieben 27. Februar 2006 Feines Skript, bei mir XP/Office2k3 (keine Updates) wird alles ordnungsgemäß angezeigt. Grüße, e2e4 Zitieren Link zu diesem Kommentar
micha42 29 Geschrieben 27. Februar 2006 Melden Teilen Geschrieben 27. Februar 2006 hm, bei mir evtl nicht genz... oder? das Script zeigt "Word XP (10.0.6501.0) unter Word ? / Info bekomme ich "Word 2002 (10.6764.6735) SP3" das xp=2002 ist weiß ich nur die Nummer kann ich nicht erklären... Noch ne Frage was meinst Du mit "Das Starten der Anwendungen aus dem Skript heraus übersteigt meine Fähigkeiten, da dynamisch Buttons für jede Anwendung erzeugt werden müssten." Ansonsten Superscript! Michael Zitieren Link zu diesem Kommentar
learner 10 Geschrieben 28. Februar 2006 Melden Teilen Geschrieben 28. Februar 2006 Danke für Euer Feedback und Lob! :) Zur Versionsnummer: Das Skript ließt ja die Versionsnummer der Datei MSWORD.EXE aus. Also sollte diese mit der Nummer in den Eigenschaften der Datei übereinstimmen. Ich vermute mal, dass diese Dateiversion der exe wohl nicht immer mit dem Patchlevel der Anwendung übereinstimmt. Aber das ist nur eine Vermutung... Zu den Buttons: Dies war auf die Frage nach dem Starten der Anwendung bezogen. Ich habe dies so verstanden, als sollte es möglich sein, eine Anwendung die das Skript auflistet direkt aus dem Skript zu starten. Meine Idee war somit, hinter der gelisteten Anwendung einen Button zu erzeugen, der den Start ausführt. Und ich habe leider keine Ahnung wie man dies machen könnte... Oder habe ich das falsch verstanden? viele Grüße aus Mannheim learner Zitieren Link zu diesem Kommentar
Letze01 10 Geschrieben 28. Februar 2006 Melden Teilen Geschrieben 28. Februar 2006 Hay hay, auch von mir ein dickes Lob für das Script! :thumb1: Allerdings hast Du mich was den Programmaufruf angeht wohl wirklich falsch verstanden... Ich wollte gerne entsprechend der Outlook-Version ein Script aufrufen - für jede Version ein anderes. Hintergrund ist der, dass über eine *.prf-Datei und Registry-Keys ein Outlookprofil mit Exchange-Einstellungen konfiguriert werden soll. Diese sind allerdings versionsabhängig. Ich habe mir zwischenzeitlich aus Deinem Script und weiteren Batches was zusammengestrickt. (Nun wird aus dem Login-Script heraus Dein VB-Script aufgerufen, welches dann wiederum entsprechend der Version einen Batch aufruft, der dann die angesprochenen Einstellungen vornimmt - sicherlich eher unschön, aber immerhin wirksam) :D Zitieren Link zu diesem Kommentar
learner 10 Geschrieben 1. März 2006 Melden Teilen Geschrieben 1. März 2006 Ach so... :p Ja, dann freut es mich doch, dass es funktioniert! Die Idee Batches mit dem Skript zu kombinieren, gefällt mir echt gut. Finde es irgendwie besser, selbst was zu basteln, anstatt immernur auf den richtigen Treffer bei Google oder irgendeinen Software-Tipp zu warten. Schicke Sache... :jau: viele Grüße learner Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.