Registry/Ordnerpfad Änderungen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Registry/Ordnerpfad Änderungen

    Moin,

    ich bin blutiger Programmieranfänger und habe grade ein Programm in vb.net geschrieben, das per Knopfdruck alle Ordner wie: Appdata, Downloads, Documents, Pictures usw in der Registry auf zu einem anderen Pfad ändert. Das habe ich auch hinbekommen. Leider ist der Pfad des Ordner hardcoded. Ich möchte diesen selbst festlegen können, indem ich den Pfad in einer Textbox packe. Das Ding dabei ist, ich möchte es so haben, das ich nur eingeben muss: H:\Benutzer. Um welchen Ordner es sich handelt und was er am Ende dran hängen soll, soll das Programm selber machen. z.B. Den Downloadpfad mit dem Namen "{374DE290-123F-4565-9164-39C4925E467B}" soll er dann so machen: H:\Benutzer\Downloads. Kann mir einer sagen wie ich das machen kann ? Der Source Code meinen Programmes sieht im Moment noch so aus.

    VB.NET-Quellcode

    1. Imports Microsoft.Win32
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. My.Computer.Registry.SetValue(
    5. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "My Pictures", "H:\Benutzer\Bilder")
    6. My.Computer.Registry.SetValue(
    7. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "{374DE290-123F-4565-9164-39C4925E467B}", "H:\Benutzer\Downloads")
    8. My.Computer.Registry.SetValue(
    9. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "{4C5C32FF-BB9D-43B0-B5B4-2D72E54EAAA4}", "H:\Benutzer\Saved Games")
    10. My.Computer.Registry.SetValue(
    11. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "{56784854-C6CB-462B-8169-88E350ACB882}", "H:\Benutzer\Contacts")
    12. My.Computer.Registry.SetValue(
    13. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "{7D1D3A04-DEBB-4115-95CF-2F29DA2920DA}", "H:\Benutzer\Searches")
    14. My.Computer.Registry.SetValue(
    15. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "{A520A1A4-1780-4FF6-BD18-167343C5AF16}", "H:\Benutzer\Appdata\LocalLow")
    16. My.Computer.Registry.SetValue(
    17. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "{BFB9D5E0-C6A9-404C-B2B2-AE6DB6AF4968}", "H:\Benutzer\Links")
    18. My.Computer.Registry.SetValue(
    19. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "AppData", "H:\Benutzer\Appdata\Roaming")
    20. My.Computer.Registry.SetValue(
    21. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "My Music", "H:\Benutzer\Music")
    22. My.Computer.Registry.SetValue(
    23. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "My Video", "H:\Benutzer\Videos")
    24. My.Computer.Registry.SetValue(
    25. "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\", "Personal", "H:\Benutzer\Documents")
    26. MessageBox.Show("Alle Ordner wurden geändert")
    27. End Sub
    28. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    29. End Sub
    30. Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs)
    31. End Sub
    32. Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click, Label2.Click
    33. End Sub
    34. End Class


    Danke schonmal im vorraus.

    MfG

    anideath :)
    @anideath Willkommen im Forum. :thumbup:
    Du versuchst da, sehr umfassend in das Betriebssystem einzugreifen.
    • Wozu soll das nötig sein? Um zu lernen, wie man die Registry zerschießt?
    • Das ist keine Übung für einen Programmieranfänger. Selbst Fortgeschrittene nehmen die Finger weg von der Registry.
    • Wenn Du nicht weißt was Du proggen sollst, gugst Du hier.
    Mit einem Wort: Lass das sein :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich schätze @RodFromGermany hat das gut erkannt. Auch mir erschließt sich der Sinn deines Vorhabens nicht.

    Die Registry ist kein Ort um Programmieren zu lernen. Wenn du den Umgang mit Verzeichnissen und Dateien erlernen willst, mach dir nen Temporären Ordner mit Zeug drin bei dem es nicht schlimm ist wenn was hopps geht.

    Zur Verarbeiten von Dateien und Ordnern kannst du dann den System.IO Namespace verwenden. Sa ist alles drin was du benötigst.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Danke für die Antwort schonmal :)

    Ich möchte gerne die Standardordner Pfade der Windows Bibliotheken damit ändern. Das geht auch per Hand mit Rechtsklick auf z.B Dokumente -> Pfad da ich nur eine 120gb SSD habe und die Ordner ziemlich riesig werden können. Wenn ich mal mein System neu aufsetze, möchte ich diese Ordner per Knopfdruck, Script oder was auch immer geändert haben. Das Miniprogramm was ich geschrieben hab, funktioniert halt und zerschießt auch nichts.

    Das ist im Prinzip das gleiche ...




    wie als wenn man das hier ändert :)

    anideath schrieb:

    Das ist im Prinzip das gleiche ...
    Solch unwichtige Information solltest Du in den Eröffnungspost schreiben.
    Aber auch das ist kein Grund, in der Registry rumzupfuschen.
    Wie wäre es denn mit diesem hier:
    Mach Dir eine Dokumentenvorlage mit diesen Eintragungen und übertrage die auf die betreffenden Dokumente.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @anideath Man kann einem Word-Dokument eine andere Normal.dot(x) unterjubeln.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!