Jump to content

Office-Version mit vbs auslesen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar
  • 7 Monate später...

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.

Link zu diesem Kommentar
  • 1 Monat später...

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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... :confused:

 

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...