Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
Scruby_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 27.08.2007
Beiträge: 27

Registry Schlüssel
Verfasst am: 05.09.2007, 14:28

wie kann ich am besten prüfen ob ein bestimmter schlüssel bzw wert existiert?

bis jetzt habe ich beim datentyp registrykey noch keine exists function gefunden.

grüße

Scruby
 
schieGG_
Newbie
Newbie



Anmeldedatum: 25.08.2007
Beiträge: 11


Verfasst am: 05.09.2007, 18:44

Code:

Dim register As RegistryKey
register = Registry.LocalMachine.OpenSubKey( _
             "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
register.GetValue(xxxxx)
 
Scruby_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 27.08.2007
Beiträge: 27


Verfasst am: 06.09.2007, 09:53

Das Problem ist da aber, dass ich nicht weiss welche unterschlüssel schon dort sind...
Hatte ich oben schlecht erklärt.

Bei
Code:
Dim register As RegistryKey
register = Registry.LocalMachine.OpenSubKey( _
             "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
 


Es kann sein dass dort nur z.B. HKLM\OFTWARE\Microsoft\Windows existiert und noch CurrentVersion und Run angelegt angelegt werden müssen.
Code:
Key.createsubkey("CurrentVersion")
...


Wenn ich aber gleich die unterschlüssel anlege gehen die werte in diesen verloren und das sollen sie nicht.

evtl lässt sich das mit einer try-catch-schleife realisieren.
 
schieGG_
Newbie
Newbie



Anmeldedatum: 25.08.2007
Beiträge: 11


Verfasst am: 06.09.2007, 11:11

habe jetz das zwar nicht "nachgebaut" was du willst aber ich glaube wie es gehen könnte...

Von mir ausgesehen (wenn ich dich richtig verstehe) gibt es 2 Lösungen. Wenn du ein nicht existierender SubKey öffnest und es einen Fehler generiert kannst du es wie du gesagt hast mit try-catch machen und dann den schlüssel erstellen...
Oder es gibt doch, glaube ich, eine Count funktion, dann kannst du die items oder keys zählen...
http://www.codeproject.com/vb/net/registry_with_vb.asp

ich weiss dich wast du genau machen willst, aber ich glaube du findest sicher die passende Lösung.
 
Scruby_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 27.08.2007
Beiträge: 27


Verfasst am: 06.09.2007, 14:59


thx @ schieGG

ich habe es jetzt geschafft!

hier der code (zum besseren nachvollziehen fast der ganze code von checkbox1_checkedchanged):

[vb:1:10e5a056d3]Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
Dim state As String
If CheckBox1.Checked = True Then
state = "True"
Else
state = "False"
End If

Dim Key As RegistryKey
Try
Try
Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\xxx\yyy", True)
Key.SetValue("option", state)
Catch When Err.Number = 91 ' 91: Objekt wurde nicht festgelegt/existiert nicht
Try
Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\xxx", True)
Key.CreateSubKey("yyy")
Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\xxx\yyy", True)
Key.SetValue("option", state)
Catch When Err.Number = 91
Key = Registry.LocalMachine.OpenSubKey("SOFTWARE", True)
Key.CreateSubKey("xxx")
Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\xxx", True)
Key.CreateSubKey("yyy")
Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\xxx\yyy", True)
Key.SetValue("option", state)
End Try
End Try
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Fehler:")
finally
key.close
End Try
End Sub[/vb:1:10e5a056d3]

vllt hilft der code noch jemandem Wink


//Edit:
zum schluss noch key.close
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: wert existiert, registry, schlüssel, prüfen

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Laufzeitfehler 424 Objekt nicht gefunden trotz form1. 801 05.07.2008, 11:44
Keine neuen Beiträge Sub oder Funktion nicht gefunden (createobject) 396 29.06.2008, 13:41
Keine neuen Beiträge Problemen , kein namen gefunden dafür ;) "string,schlei 574 24.04.2008, 19:08
Keine neuen Beiträge Bibliothek nicht gefunden! 248 01.03.2008, 23:20
Keine neuen Beiträge ieframe.dll nicht gefunden 581 24.02.2008, 15:43
 


[ Time: 0.0695s ][ Queries: 94 (0.0269s) ][ GZIP on - Debug on ]