none
Zugriff auf Registryzweig LOCAL_MACHINE funktioniert nicht unter windows 7, Visual Basic 2010 Express RRS feed

  • Frage

  • Hallo Leute,

    habe das Problem dass der Zugriff (lesend wie schreibend) auf diesen Registry-Ast von windows 7 nicht funktioniert.

    Ich habe verschiedene Methoden ausprobiert:

    Dim rk2 As RegistryKey = Registry.LocalMachine.CreateSubKey("Software\myEntry\myEntryTest") soll diesen Schlüssel anlegen

    Dim readValue = My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\Software\AVS", "appfix", Nothing) (wert wird ausgelesen)

     

    habe auch versucht berechtigungen zu vergeben:

    Dim f As New RegistryPermission(RegistryPermissionAccess.AllAccess, "HKEY_LOCAL_MACHINE\Software\AVS\\0")

     

    Das alles funktioniert nicht, und es kommt KEINE exception. Das prog läuft ganz normal weiter.

    Dies alles unter dem Zweit "CURRENT USER" funktioniert problemlos.

    Hat jemand eine Idee? Ich finde sowohl im Internet als im MS-Technet-forum keine Infos dazu.

     

    Für eure Hilfe wäre ich sehr dankbar.

     

    Gruß

     

    Mittwoch, 26. Oktober 2011 13:14

Antworten

Alle Antworten

  • Hi,

    ist das zufällig ein 64 Bit System? Falls ja, ist deine Anwendung evtl. eine 32 Bit Anwendung? Falls auch das ja, schau mal hier:

      http://www.rhyous.com/2011/01/24/how-read-the-64-bit-registry-from-a-32-bit-application-or-vice-versa/

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Mittwoch, 26. Oktober 2011 18:14
    Moderator
  • Danke für die Schnelle Antwort:-)

     

    Mit

     

    rk3 = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64)
            rk3 = rk3.OpenSubKey("SOFTWARE\irgendwas")
            value32 = rk3.GetValue("<Wertname>").ToString()

     

    gehts.

    Ja ich habe ein 64-Bit-System, verstehe nur nicht warum man den CurrentUser-Zweig dann mit "herkömmlichen" Methoden auslesen kann und  den Zweig "localmachine" nicht.

     

    Danke, Gruß

     

    Donnerstag, 27. Oktober 2011 11:27
  • Hi,

    der HKLM bzw. HKCU Node ist ja nicht das Problem, sondern der darunter befindliche Software Node.

    Evtl. ist in HKCU der gesuchte Node/Wert in beiden Varianten (x86 und x64) enthalten bzw. existiert er "zufälligerweise" gerade in der der Variante, die durch deine Anwendung ohne Angabe, ob x64 oder x86, durchsucht wird.

    Geh doch mal mit regedit in die Registry und schau dir das dort direkt an.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Donnerstag, 27. Oktober 2011 11:43
    Moderator
  • Hallo vbfrickler,

    Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Mittwoch, 9. November 2011 16:03