Avatar billede wosgam Nybegynder
23. oktober 2008 - 15:13 Der er 2 kommentarer og
1 løsning

Objekt referencen er ikke indstillet til en forekomst af et objek

Hej eksperter,

Jeg er igang med et program der kan administrere startup programmer på computeren, men jeg er løbet ind i et problem på vista.

Problemet:
Når jeg kører mit program på den første administrator bruger jeg lavede, kører det fint.
Men når jeg kører det på min anden administrator bruger siger den:

System.NullReferenceException was unhandled
  Message="Objektreferencen er ikke indstillet til en forekomst af et objekt."
  Source="MgnStartUpManager 2"
  StackTrace:
      ved MgnStartUpManager_2.Form1.Indlæs_Startup_Programmer() i J:\Mine Program Projekter\MgnStartUpManager 2\MgnStartUpManager 2\Form1.cs:linje 173
      ved MgnStartUpManager_2.Form1..ctor() i J:\Mine Program Projekter\MgnStartUpManager 2\MgnStartUpManager 2\Form1.cs:linje 28
      ved MgnStartUpManager_2.Program.Main() i J:\Mine Program Projekter\MgnStartUpManager 2\MgnStartUpManager 2\Program.cs:linje 18
      ved System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
      ved System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
      ved Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
      ved System.Threading.ThreadHelper.ThreadStart_Context(Object state)
      ved System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      ved System.Threading.ThreadHelper.ThreadStart()
  InnerException:

Min kode der hvor den siger fejlen er:
                string[] AlleBrugere;
                string[] AlleBrugereOnce;
                string[] NuværendeBruger;
                string[] NuværendeBrugerOnce;
                listView1.Items.Clear();
                imageList1.Images.Clear();
                RegistryKey _AlleBrugere = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
                RegistryKey _AlleBrugereOnce = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", true);
                RegistryKey _NuværendeBruger = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
                RegistryKey _NuværendeBrugerOnce = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", true);
                AlleBrugere = _AlleBrugere.GetValueNames();
                AlleBrugereOnce = _AlleBrugereOnce.GetValueNames();
                NuværendeBruger =  _NuværendeBruger.GetValueNames();

// Den siger det efter denne kommentar
                NuværendeBrugerOnce = _NuværendeBrugerOnce.GetValueNames(); // Denne linje
// ---------------------------------------------------------------------------------------


                string[] AlleBrugereMappe = new string[0];
                string[] NuværendeBrugerMappe = new string[0];
                len1 = AlleBrugere.Length;
                len2 = AlleBrugereOnce.Length;
                len3 = NuværendeBruger.Length;
                len4 = NuværendeBrugerOnce.Length;
                nav1 = _AlleBrugere.GetValueNames();
                nav2 = _AlleBrugereOnce.GetValueNames();
                nav3 = _NuværendeBruger.GetValueNames();
                nav4 = _NuværendeBrugerOnce.GetValueNames();

Er der nogle der kan hjælpe???
Avatar billede pidgeot Nybegynder
23. oktober 2008 - 15:17 #1
Det betyder ganske enkelt at _NuværendeBrugerOnce er null - og som http://msdn.microsoft.com/en-us/library/xthy8s8d.aspx forklarer, betyder det at registreringsnøglen ganske enkelt ikke eksisterer.

Du må skrive din kode om så den håndterer de tilfælde, ved at checke på null. En funktion der tager mod nøglestien og returnerer et par variable (eks. i form af out-parametre) var nok en ide, så du ikke skal gentage koden så mange gange.
Avatar billede wosgam Nybegynder
29. oktober 2008 - 17:38 #2
tak læg et svar :)
Avatar billede pidgeot Nybegynder
29. oktober 2008 - 17:58 #3
Værsgo. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester