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 19.576 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (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. |
Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |