Entwickler-Ecke

IO, XML und Registry - Registry und Autostart


paddy14 - Mi 24.08.11 18:45
Titel: Registry und Autostart
Guten Abend Forum,

Ich bekommen diese SecurityException:

C#-Quelltext
1:
Der angeforderte Registrierungszugriff ist unzulässig.                    


und hier ist mein Code.

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
public void SetStartup(string AppName, bool enable)
        {
            string runKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";

            Microsoft.Win32.RegistryKey startupKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(runKey);

            if (enable)
            {
                if (startupKey.GetValue(AppName) == null)
                {
                    startupKey.Close();
                    <span style="color: red">startupKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(runKey, true)</span>;
                    // Add startup reg key
                    startupKey.SetValue(AppName, "C:\\Users\\patrick\\Desktop");
                    startupKey.Close();
                }
            }
            else
            {
                // remove startup
                startupKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(runKey, true);
                startupKey.DeleteValue(AppName, false);
                startupKey.Close();
            }
        }



        
        private void button1_Click(object sender, EventArgs e)
        {
            SetStartup("Kran"true); 
            
        }


Ich möchte das mein Prog automatisch beim Start startet.
Hoffe mir kann jemand helfen


Th69 - Mi 24.08.11 19:20

Hallo paddy14,

laut RegistryKey.OpenSubKey-Methode [http://msdn.microsoft.com/de-de/library/xthy8s8d.aspx] bedeutet die SecurityException
MSDN hat folgendes geschrieben:
Der Benutzer verfügt nicht über die erforderlichen Berechtigungen, um auf den Registrierungsschlüssel im angegebenen Modus zuzugreifen.


Mit welcher Windows-Version arbeitest du und führst du das Programm unter einem Admin-Konto aus?


paddy14 - Mi 24.08.11 19:29

Ich habe Windows Vista 64 Bit Ultimate.

Nein nur als normaler User, kann mich aber auch als Admin anmelden.


Th69 - Mi 24.08.11 19:47

Dann solltest du das auch tun, denn in die Registry kann man ja nur als Admin schreiben ;-)

Ansonsten müßtest du dein Programm von außen als Admin starten oder aber "impersonalisieren" (impersonate).


Kha - Mi 24.08.11 21:40

user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
denn in die Registry kann man ja nur als Admin schreiben ;-)
Außer auf HKCU, wo es auch einen entsprechenden Autorun-Schlüssel gibt.