VB 5/6-Tipp 0032: Installationsverzeichnis und Version von VB suchen
von ActiveVB
Beschreibung
Um den Installationspfad und die Version von VB erfassen zu können, muß nach einem entsprechenden Eintrag in der Registry Ausschau gehalten werden. Und das geht so:
Schwierigkeitsgrad: | Verwendete API-Aufrufe: RegCloseKey, RegOpenKeyExA (RegOpenKeyEx), RegQueryValueExA (RegQueryValueEx) | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Beschriftungsfeld "Label1" Option Explicit Private Declare Function RegOpenKeyEx Lib "advapi32.dll" _ Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal _ lpSubKey As String, ByVal ulOptions As Long, _ ByVal samDesired As Long, phkResult As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32.dll" _ Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal _ lpValueName As String, ByVal lpReserved As Long, _ lpType As Long, lpData As Any, lpcbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal _ hKey As Long) As Long Const ERROR_SUCCESS As Long = 0& Const HKEY_LOCAL_MACHINE As Long = &H80000002 Const STANDARD_RIGHTS_ALL As Long = &H1F0000 Const KEY_QUERY_VALUE As Long = &H1& Const KEY_SET_VALUE As Long = &H2& Const KEY_CREATE_SUB_KEY As Long = &H4& Const KEY_ENUMERATE_SUB_KEYS As Long = &H8& Const KEY_NOTIFY As Long = &H10& Const KEY_CREATE_LINK As Long = &H20& Const SYNCHRONIZE As Long = &H100000 Const KEY_ALL_ACCESS As Long = ((STANDARD_RIGHTS_ALL Or _ KEY_QUERY_VALUE Or KEY_SET_VALUE Or _ KEY_CREATE_SUB_KEY Or _ KEY_ENUMERATE_SUB_KEYS Or _ KEY_NOTIFY Or KEY_CREATE_LINK) And _ (Not SYNCHRONIZE)) Private Sub Form_Load() Dim hKey As Long, Length As Long, ValType As Long, Vx As Long Dim Value As String, Path As String, V As String '### Entsprechenden Registry-Schlüssel öffnen Path = "SOFTWARE\Microsoft\Visual Basic\" If RegOpenKeyEx(HKEY_LOCAL_MACHINE, Path & "6.0", 0&, _ KEY_ALL_ACCESS, hKey) = ERROR_SUCCESS Then V = "6.0" Else If RegOpenKeyEx(HKEY_LOCAL_MACHINE, Path & "5.0", 0&, _ KEY_ALL_ACCESS, hKey) = ERROR_SUCCESS Then V = "5.0" Else If RegOpenKeyEx(HKEY_LOCAL_MACHINE, Path & "4.0", _ 0&, KEY_ALL_ACCESS, hKey) = ERROR_SUCCESS Then V = "4.0" Else Label1 = "Fehler beim Öffnen des Schlüssels!" Exit Sub End If End If End If '### Registry-Schlüssel auslesen Length = 255 Value = Space$(Length) If RegQueryValueEx(hKey, "InstallDir", 0&, ValType, ByVal _ Value, Length) <> ERROR_SUCCESS Then Label1 = "Fehler beim Aulesen des Schlüssels!" Exit Sub End If '### Registry-Schlüssel schließen If RegCloseKey(hKey) <> ERROR_SUCCESS Then Label1 = "Fehler beim Schließen des Schlüssels!" Exit Sub End If Value = Left$(Value, Length - 1) Label1 = "Sie benutzen die Version " & V & vbCrLf _ & "Dieses wurde in das Verzeichnis '" _ & Value & "' installiert." End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB5 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB6 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 3 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Raanubis am 12.03.2003 um 18:17
Es funzt allerdings wurde hier nicht unterschieden, ob man Visual Studio oder 'nur' Visual Basic installiert hat.
Ansonsten wenn MS es geändert hat, sollte man bei:
'### Entsprechenden Registry-Schlüssel öffnen
Path = "SOFTWARE\Microsoft\Visual Basic\"
folgendes eintragen
'### Entsprechenden Registry-Schlüssel öffnen
Path = "SOFTWARE\Microsoft\VisualStudio\"
Der Rest müsste gleich bleiben
Kommentar von Mirko Heinkel am 13.11.2001 um 15:32
oops, sorry, falsche baustelle ;-))
mirko
Kommentar von Mirko Heinkel am 13.11.2001 um 15:31
kleiner bug:
in funktion CalcFTime geht die stunde um 1 std nach.
lösung:
diese zeile abändern:
Zeit = .wHour + 1 & ":" & mm & ":" & ss
mirko