vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Abfrage eines Registry Schlüssel 
Autor: Pedamo
Datum: 26.08.15 10:57

Hallo,

bin neu hier, habe die Suchfunktion verwendet jedoch ohne Erfolg.

Ein Paar hintergrunddaten.
In meinem Programm habe ich viele viele Install-Verknüpfungen um nicht jedesmal die Setupdateien mühsam zusammen zu suchen, und unter anderem auch manchmal ein paar Registry Einträge die ich ausführe.

Mein Problem nun, ich möchte mit dem unten folgendem Code Prüfen ob der Registry-key/verzeichniss bereits vorhanden ist oder nicht.
Wenn der Schlüssel vorhanden ist kommt die gewünschte MessageBax "Key Gefunden" in meinem fall "WSUS ist eingetragen!".
Jedoch wenn der Schlüssel nicht vorhanden ist kommt nur ein "Unbehandelte Ausnahme in der Anwendung..." und nicht die gewünschte MessageBox "Key not Found".

Ich hoffe ich habe mich verständlich ausgedrückt.
danke schonmal, und habt nachsicht ich kenne mich mit Fachausdrücken in der Informatik nciht besonderlich aus.

    Private Sub Button240_Click(sender As Object, e As EventArgs) Handles _
      Button240.Click
 
        Const HKEY_LOCAL_MACHINE = &H80000002
 
        strComputer = "."
        objRegistry = GetObject("winmgmts:\\" & _
            strComputer & "\root\default:StdRegProv")
 
        strKeyPath = "SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
        strValueName = "WUServer"
        strValue = "http://wsus01:8530"
        objRegistry.GetStringValue(HKEY_LOCAL_MACHINE, strKeyPath, _
          strValueName, strValue)
 
        If isNull(strValue) Then
            MsgBox("Key Not Found")
        Else
            MessageBox.Show("WSUS ist eingetragen!", "Settings")
        End If
 
    End Sub

MFG
Pedamo

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Abfrage eines Registry Schlüssel 
Autor: whisky1108
Datum: 28.08.15 16:58

Vielleicht hilft dir das weiter:

Private sub Test()
strKeyPath = "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
strValueName = "WUServer"
strValue = "http://wsus01:8530"
 
If Not isRegKey(strKeyPath & "\" & strValueName, strValue) Then
     MsgBox ("Key Not Found")
Else
     MsgBox ("WSUS ist eingetragen!")
End If
End Sub
Private Function isRegKey(ByVal sRegPath As String, ByVal sValue As String) As _
  Boolean
Dim ws As Object
 
Set ws = CreateObject("WScript.Shell")
isRegKey = (sValue = ws.RegRead(sRegPath))
End Function


Beitrag wurde zuletzt am 28.08.15 um 17:00:36 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Abfrage eines Registry Schlüssel 
Autor: whisky1108
Datum: 28.08.15 21:17

Eventuell:
        strValue = "http://wsus01:8530"
 
        objRegistry.GetStringValue(HKEY_LOCAL_MACHINE, strKeyPath, _
          strValueName, strValue)
 
        If isNull(strValue) Then' Eigentlich immer False, oder?
            MsgBox("Key Not Found")
        Else
            MessageBox.Show("WSUS ist eingetragen!", "Settings")
        End If
in

       Dim sErgebnis as String
 
        sErgebnis=objRegistry.GetStringValue(HKEY_LOCAL_MACHINE, strKeyPath, _
          strValueName, strValue)
 
        If String.IsNullOrEmpty(sErgebnis) Then
            MsgBox("Key Not Found")
        Else
            MessageBox.Show("WSUS ist eingetragen!", "Settings")
        End If
ändern.

Beitrag wurde zuletzt am 28.08.15 um 21:20:47 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Abfrage eines Registry Schlüssel 
Autor: cookstdu
Datum: 29.08.15 15:22

Hallo

Warum verwendest du nicht den Microsoft.Win32 Namespace im Framework?

Imports Microsoft.Win32
 
Public Class Form1
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
      Handles Button1.Click
        Dim strKeyPath As String = _
        "SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
        Dim strValueName = "WUServer"
        Dim rc As RegistryKey = Registry.LocalMachine.OpenSubKey(strKeyPath)
        If rc IsNot Nothing Then
            If rc.GetValue(strValueName) IsNot Nothing Then
                MsgBox(rc.GetValue(strValueName).ToString)
            Else
                MsgBox("Wert nicht vorhanden")
            End If
        Else
            MsgBox("Schlüssel nicht vorhanden")
        End If
    End Sub
End Class
cu

Wenn alle Stricke rei?en, dann h?ng ich mich auf. ~ Karl Kraus

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Abfrage eines Registry Schlüssel 
Autor: Pedamo
Datum: 31.08.15 10:17

Hallo Cookstdu,

danke für deine Antwort sie hat auf Anhieb funktioniert.

Du ahst mir sehr geholfen, vielen Dank nochmal, hab den Umgeschrieben Code von dir 1:1 überniommen, den Import hinzugefügt und alles läuft.

Danke

MFG
Pedamo

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel