Registry-Eintrag in Classes Root?

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von thefiloe.

    Registry-Eintrag in Classes Root?

    Hey,
    irgendwie ist das mit der Registry was komisches: Manchmal gehts, manchmal gehts nicht und es kommt auch kein Fehler. Naja, dass was nicht ging hab ich bis jetzt immer übersprungen oder es mit einer reg Datei gelöst, aber irgendwie auch doof. Naja, was ist zB. an folgendem Beispiel falsch?

    VB.NET-Quellcode

    1. Dim regkey As RegistryKey = Registry.ClassesRoot.CreateSubKey("CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Benutzerkonten")
    2. regkey.CreateSubKey("command")
    3. regkey.SetValue("", "control userpasswords2")
    4. regkey.Close()


    In einer reg Datei würde der Befehl so aussehen:

    Quellcode

    1. [HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Benutzerkonten]
    2. [HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Benutzerkonten\Command]
    3. @="control userpasswords2"


    Was mach ich falsch, oder hat man keinen Zugriff auf Classes Root? Ich habs bereits als Administrator gestartet - funktioniert auch nicht.

    Hoffe, dafür gibts ne Lösung :)
    Mfg
    Vincent

    Programm automatisch als Admin starten...
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Hm, ok, hast mir trotzdem sehr weitergeholfen, so gehen jetzt zumindest son paar andere Sachen. Ich wollte das Kontextmenü ändern, wenn man Rechtsklick auf das Computer Symbol macht. Naja, das regel ich jetzt einfach mit Reg Dateien.
    Mfg
    Vincent

    Also ich kann die reg erstellen und reinschreiben was ich will :rolleyes:


    VB.NET-Quellcode

    1. Imports Microsoft.Win32
    2. Public Class Form1
    3. 'Schreiben
    4. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    5. Try
    6. My.Computer.Registry.SetValue(TextBox1.Text & TextBox2.Text, TextBox3.Text, TextBox4.Text)
    7. My.Computer.Audio.Play(My.Resources.gut, AudioPlayMode.Background)
    8. Catch ex As Exception
    9. My.Computer.Audio.Play(My.Resources.fehler, AudioPlayMode.Background)
    10. End Try
    11. End Sub
    12. 'Lesen
    13. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    14. TextBox5.Text = My.Computer.Registry.GetValue(TextBox1.Text & TextBox2.Text, TextBox3.Text, Nothing)
    15. End Sub
    16. 'Prüfen ob vorhanden
    17. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    18. If My.Computer.Registry.GetValue(TextBox1.Text & TextBox2.Text, TextBox3.Text, Nothing) Is Nothing Then
    19. MsgBox("Der Schlüssel exsistiert nicht !", MsgBoxStyle.Critical, "(( Kein Key ))")
    20. Else
    21. MsgBox("Der Schlüssel exsistiert !", MsgBoxStyle.Information, "(( Key gefunden ))")
    22. End If
    23. End Sub
    24. 'Löschen
    25. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    26. Try
    27. My.Computer.Registry.ClassesRoot.DeleteSubKey(TextBox2.Text)
    28. My.Computer.Audio.Play(My.Resources.gut, AudioPlayMode.Background)
    29. TextBox5.Clear()
    30. Catch ex As Exception
    31. My.Computer.Audio.Play(My.Resources.fehler, AudioPlayMode.Background)
    32. End Try
    33. End Sub
    34. ' Textbox 1-3 Speichern und wieder herstellen
    35. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    36. 'TextBox1.Text = My.Settings.Pfad
    37. ' TextBox2.Text = My.Settings.Ordner
    38. 'TextBox3.Text = My.Settings.Key
    39. End Sub
    40. Private Sub Form2_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    41. ' My.Settings.Pfad = TextBox1.Text
    42. ' My.Settings.Ordner = TextBox2.Text
    43. ' My.Settings.Key = TextBox3.Text
    44. End Sub
    45. End Class



    Registry-Schreiben-Lesen-Prüfen 2!.rar
    www18.zippyshare.com/v/37140366/file.html

    Hoffe es war hilfreich:
    ;) Lg Andre............................................................

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „TVX“ ()

    Ok, vielen Dank, das funktioniert, zumindest ist es nicht unmöglich :) Aber jetzt kommt das Problem: Ich habe ein neues WinForm Projekt erstellt, Berechtigung geändert und getestet - funktioniert. Das gleiche habe ich jetzt bei meinem WPF Projekt versucht, geht nicht... Liegt das an WPF? Wenn ja, wieso geht das nicht und was ist die Lösung?
    Mfg
    Vincent

    Liegt garantiert nicht an WPF. WPF ist nichts anderes als eine andere Ansammlung von Klassen,... zur Darstellung von Benutzeroberflächen. Sonst nix.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.