none
Zugriff auf Hkey.root wurde verweigert RRS feed

  • Frage

  • Hallo, ich möchte meine anwendung ohne adminrechte ausführen lassen.

    wei kann ich trotzdem die datei registrieren..

    unter meine speiche button hab ich folgendes hinterlegt

     My.Computer.Registry.ClassesRoot.CreateSubKey(".kobe").SetValue _
    
    ("", "kobe", Microsoft.Win32.RegistryValueKind.String)
    
    
    
    
    
      My.Computer.Registry.ClassesRoot.CreateSubKey _
    
     ("kobe\shell\open\command").SetValue("", Application.ExecutablePath & _
    
     " ""%l"" ", Microsoft.Win32.RegistryValueKind.String)
    
    
    
     Dim sfd As New SaveFileDialog
    
    
    
      sfd.Filter() = "*.kobe|*.kobe"
    
      If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
    
    
    
       My.Computer.FileSystem.WriteAllText(sfd.FileName, _
    
       Me.ComboBox2_T.Text & ";" & _
    
       Me.ComboBox1_G.Text & ";" & _
    
       Me.TextBox5_U.Text & ";" & _
    
    

    bei vista gibt ja so ein verb namens "runas" aber das muss man glaube ich auch als admin schon angemeldet sein??

    danke für die hilfe

    Montag, 31. Januar 2011 09:58

Antworten

  • Hi,

    also wenn ich das mache, klappt das einwandfrei. Allerdings ist %l falsch, da muss %1 hin (1 = Zahl Eins)

    Dazu kommt, dass der Key nicht im Root von HKCU, sondern im Schlüssel HKCU\Software\Classes\ erzeugt werden muss.

     

     


    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
    • Als Antwort markiert Bergfeuer Freitag, 4. Februar 2011 15:11
    Mittwoch, 2. Februar 2011 10:50
    Moderator

Alle Antworten

  • Hi,

    wenn Du auf HKLM oder HKCR schreibend zugreifen willst, wirst Du um Adminrechte nicht drumrumkommen.

    Ggfs. hilft dir aber der Key:

      HKEY_CURRENT_USER\Software\Classes

    Dort solltest Du auch ohne Adminrechte schreiben dürfen, allerdings gilt das dann nur für den einzelnen Benutzer. Wenn also auf der gleichen Maschine verschiedene Benutzer diese Einstellung haben sollen, muss die Anwendung das dann bei jedem ersten Start einrichten.

     


    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
    Montag, 31. Januar 2011 20:54
    Moderator
  • DANKE ;D  werde es morgen gleich versuchen...
    Montag, 31. Januar 2011 22:27
  • Das registrieren klappt nur das öffnen mit meinem programm nicht ;(
    Dienstag, 1. Februar 2011 16:50
  • Hab jetzt folgende zeilen

    My.Computer.Registry.CurrentUser.CreateSubKey(".kobe").SetValue("", "kobe", Microsoft.Win32.RegistryValueKind.String)
    
      My.Computer.Registry.CurrentUser.CreateSubKey("kobe\shell\open\command").SetValue("", Application.ExecutablePath & " ""%l"" ", Microsoft.Win32.RegistryValueKind.String)
    
      My.Computer.Registry.CurrentUser.CreateSubKey("kobe\DefaultIcon").SetValue("", System.IO.Path.Combine(Application.StartupPath, "BL-Logo.group.32x32_12.ico"))
    

     

    er legt es an, nur er reagiert nicht, ich hoffe das das nicht nur in HKEY ROOT funtkioniert, die datei durch doppelklicken im programm öffnen zu lassen...

    Mittwoch, 2. Februar 2011 10:14
  • Hi,

    also wenn ich das mache, klappt das einwandfrei. Allerdings ist %l falsch, da muss %1 hin (1 = Zahl Eins)

    Dazu kommt, dass der Key nicht im Root von HKCU, sondern im Schlüssel HKCU\Software\Classes\ erzeugt werden muss.

     

     


    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
    • Als Antwort markiert Bergfeuer Freitag, 4. Februar 2011 15:11
    Mittwoch, 2. Februar 2011 10:50
    Moderator