OpenSubKey() gibt immer 0 zurück



  • Hey

    Ich hoffe dass mir jemand helfen kann denn ich bin langsam am verzweifeln.
    Also ich möchte einen RegistryEintrag öffnen, z.B. so:

    RegistryKey^rootKey = Registry::CurrentUser;
    rootKey = rootKey->OpenSubKey("Software\\Microsoft\\Windows\\ShellNoRoam",true);
    MessageBox::Show(rootKey->GetValue("")->ToString());
    

    Der Schlüssel existiert und natürlich auch der Eintrag, trotzdem gibt er mir eine NullReferenceException zurück bei

    MessageBox::Show(rootKey->GetValue("")->ToString());
    

    Wenn ich das ganze anstatt mit diesem Pfad mit

    RegistryKey^rootKey = Registry::ClassesRoot;
    rootKey = rootKey->OpenSubKey(".doc",true);
    MessageBox::Show(rootKey->GetValue("")->ToString());
    

    mache, geht es. Öffne ich die Unterordner irgendwie falsch oder wie?
    Mfg danke für Antworten



  • Hallo,

    stelle der Zeichenkette ein "L" voran:

    rootKey = rootKey->OpenSubKey(L"Software\\Microsoft\\Windows\\ShellNoRoam",true);
    

    MfG,

    Probe-Nutzer



  • Geht leider trotzdem noch nicht.



  • Bei GetValue genau so, habe ich vergessen...

    MfG,

    Probe-Nutzer



  • Ja, das ist klar.

    du meinst so:

    RegistryKey^rootKey = Registry::CurrentUser;
    rootKey = rootKey->OpenSubKey(L"Software\\Microsoft\\Windows\\ShellNoRoam",true);
    MessageBox::Show(rootKey->GetValue(L"")->ToString());
    

    Geht auch nicht...



  • try
    {
    
    	RegistryKey^ rootKey = Registry::CurrentUser->OpenSubKey("Software\\Microsoft\\Windows\\ShellNoRoam");
    
    	MessageBox::Show(rootKey->ToString());
    }
    
    catch(Exception^ ex)
    {
    	MessageBox::Show(ex->Message);
    }
    


  • Doug_HH schrieb:

    try
    {
    					
    	RegistryKey^ rootKey = Registry::CurrentUser->OpenSubKey("Software\\Microsoft\\Windows\\ShellNoRoam");
    
    	MessageBox::Show(rootKey->ToString());
    }
    
    catch(Exception^ ex)
    {
    	MessageBox::Show(ex->Message);
    }
    

    Ja, aber das ändert ja nichts an dem Problem.



  • So, dass sollte es aber jetzt sein, oder????

    try
    {
    	RegistryKey^ rootKey = Registry::CurrentUser; 
    	rootKey = rootKey->OpenSubKey("Software\\Microsoft\\Windows\\ShellNoRoam",true); 
    	MessageBox::Show(Convert::ToString(rootKey->GetValue("",rootKey,RegistryValueOptions::DoNotExpandEnvironmentNames )),"Eintrag...",MessageBoxButtons::OK,MessageBoxIcon::Information);
    }
    
    catch(NullReferenceException^)
    {
    	MessageBox::Show("Eintrag nicht vorhanden\n","Fehler",MessageBoxButtons::OK,MessageBoxIcon::Error);
    }
    
    catch(Exception^ ex)
    {
    	MessageBox::Show(ex->Message);
    }
    

Anmelden zum Antworten