Immer wieder taucht die Frage vor: "Wie kann ich ermitteln, welche Word-Version auf dem System installiert ist?", oder "Wie kann ich ermitteln, ob Microsoft Office 2000 installiert ist?" Das ganze lässt sich schnell ermitteln, indem man in der Registry-Datenbank nachschaut. Und genau das tun beide nachfolgenden Funktionen. Mit der Funktion OfficeInstallPath lässt sich das Installationsverzeichnis der angegebenen Office-Version ermitteln. Gibt die Funktion einen "Leerstring" zurück, ist die Office-Version nicht installiert. Die Funktion OfficeAppInstalled hingegen prüft, ob eine bestimmte Office-Komponente (bspw. Access oder Word) installiert ist. Imports Microsoft.Win32 ... ' Aufzählung: Office-Komponenten Public Enum MSOfficeComponent MSAccess = 0 MSExcel = 1 MSOutlook = 2 MSPowerPoint = 3 MSWord = 4 End Enum ' Aufzählung Office-Version Public Enum MSOfficeVersion Office95 = 7 Office97 = 8 Office2000 = 9 OfficeXP = 10 Office2003 = 11 End Enum ' Prüfen, ob bestimmte Office-Komponente, wie MS-Access oder ' MS-Word installiert ist Public Function OfficeAppInstalled(ByVal nComponent As MSOfficeComponent) ' Registry-SubKey Dim sKey As String = Choose(nComponent + 1, "Access.Application", _ "Excel.Application", "Outlook.Application", "PowerPoint.Application", _ "Word.Application") ' Registry öffnen (Zweig ClassesRoot) Dim oReg As RegistryKey = Registry.ClassesRoot ' Wenn Unterzweig existiert, ist die Office-Komponente vorhanden ' andernfalls nicht Return Not oReg.OpenSubKey(sKey) Is Nothing ' Registry schließen oReg.Close() End Function ' Prüfen, ob bestimmte Office-Version vorhanden und ggf. den ' Installationspfad zurückgeben Public Function OfficeInstallPath(ByVal nVersion As MSOfficeVersion) As String ' Registry-SubKey Dim sKey As String = "SOFTWARE\Microsoft\Office\" & CStr(nVersion) & ".0\Common\InstallRoot" Dim sPath As String = "" ' Registry öffnen (Zweig LocalMachine) Dim oReg As RegistryKey = Registry.LocalMachine.OpenSubKey(sKey) If Not oReg Is Nothing Then ' Path-Wert lesen sPath = oReg.GetValue("Path", "") If sPath.Length = 0 Then ' "Path" nicht gefunden ' 2. Versuch: "OfficeBin" sPath = oReg.GetValue("OfficeBin", "") End If End If Return sPath End Function Beispiel Dim sPath As String = OfficeInstallPath(MSOfficeVersion.OfficeXP) If sPath.Length > 0 Then MsgBox("Office XP ist installiert: Pfad " & sPath) Else MsgBox("Office XP ist nicht installiert!") End If Sie möchten wissen, ob MS-Access auf dem System vorhanden ist? If OfficeAppInstalled(MSOfficeComponent.MSAccess) Then MsgBox("Ja, MS-Access ist installiert.") End If Dieser Tipp wurde bereits 20.250 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 ![]() ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats sevWizard für VB5/6 ![]() Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |