Forum: VB.NET |
Thema:
Setzen und auslesen von Registry-Keys |
Von:
timo richter (
20.09.2004 14:30) |
Hallo zusammen,
bin schon seit einer Weile total am verzweifeln.
Bekomme das einfach nicht auf die Reihe Registry-Werte richtig zu setzen.
Möchte das wenn meine Anwendung gestartet wird und der Key noch nicht existiert unter HKCU\Software\blabla ein key generiert wird, und zwei Values Key1 und Key2 als String gesetzt werden.
Später in der Laufzeit wird durch klick auf einen Button ein OpenFileDialog angezeigt, und der Pfad der ausgewählten Datei (openfiledialog1.filename) soll als Key1 gesetzt werden.
Habe derzeit folgenden Code Programmiert:
--------------------------------------
Imports System
Imports Microsoft.Win32
Imports Microsoft.Win32.Registry
Public Class Form1
Inherits System.Windows.Forms.Form
Dim f2 As New Form2
Dim f3 As New Form3
Dim rk As RegistryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\Digicomm-Consulting\Kuli2004\db", True)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If rk Is Nothing Then
Registry.CurrentUser.CreateSubKey("SOFTWARE\Digicomm-Consulting\Kuli2004\db")
Registry.CurrentUser.SetValue("SOFTWARE\Digicomm-Consulting\Kuli2004\db\db_ddorf_path", "<noch kein Datenbank-Pfad gewählt>")
Registry.CurrentUser.SetValue("SOFTWARE\Digicomm-Consulting\Kuli2004\db\db_bonn_path", "<noch kein Datenbank-Pfad gewählt>")
Registry.CurrentUser.Close()
End If
Timer1.Enabled = True
End Sub
--------------------------------------
Imports System
Imports Microsoft.Win32
Imports Microsoft.Win32.Registry
Public Class Form3
Inherits System.Windows.Forms.Form
Dim db_ddorf_path, db_bonn_path As String
Dim changed As Boolean = False
Dim rk As RegistryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\Digicomm-Consulting\Kuli2004\db", True)
Dim first As Boolean = False
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox28.Text = rk.GetValue("SOFTWARE\Digicomm-Consulting\Kuli2004\db\db_ddorf_path")
db_ddorf_path = TextBox28.Text
TextBox29.Text = rk.GetValue("SOFTWARE\Digicomm-Consulting\Kuli2004\db\db_bonn_path")
db_bonn_path = TextBox29.Text
End Sub
-----------------------------------
Nun soll aber beim wechseln des DB-Pfades dieser auch wieder zurück geschrieben werden. Dies versuche ich mit folgendem Code zu machen:
------------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ofd1.ShowDialog()
If ofd1.FileName = "" Then
Else
rk.SetValue("SOFTWARE\Digicomm-Consulting\Kuli2004\db\db_ddorf_path", ofd1.FileName)
TextBox28.Text = ofd1.FileName
ofd1.FileName = ""
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ofd1.ShowDialog()
If ofd1.FileName = "" Then
Else
rk.SetValue("SOFTWARE\Digicomm-Consulting\Kuli2004\db\db_bonn_path", ofd1.FileName)
TextBox29.Text = ofd1.FileName
ofd1.FileName = ""
End If
End Sub
----------------------------------------
Ich hoffe jemand von euch hat ne Idee was ich falsch mache da ich laufend die Meldung bekomme "ObjectReference is not set to an instance of an object" oder so ähnlich....
danke im voraus
Gruss
Timo
Betreff |
Von |
Datum |
|
  |
Re: Setzen und auslesen von Registry-Keys
Du kannst doch jetzt nicht erwarten, dass andere für dich dein Programm testen!<br>Das Listing ist für eine Frage einfach zu komplex.<br><br>Aber nun zur Registry. Deine Befehle scheinen auf den 1.Blick... |
 |
 |
 |
|
|
Berthold
Neumann
|
21.09.2004 14:53 |
|
  |
Re: Setzen und auslesen von Registry-Keys
Am besten wäre es mit dem Debugger herauszufinden in welcher Zeile dieser Fehler auftritt.<br>Ich habe in meinem Projekt auch mit Registry Werten zu tun und wenn ich auf einen Wert versuche zuzugreifen,... |
 |
 |
 |
|
|
Stephan
|
22.09.2004 10:49 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!