the incredible Leitman
Erfahrenes Mitglied
ARGL, ich zuck gleich aus
Seit 3 Stunden spiel ich mich schon damit, aber ich bekomms nicht zusammen -.-
Ich überprüfe am Anfang meiner Applikation ob ein RegEintrag vorhanden ist... wenn keiner da ist, erstell ich einen....
den fülll ich dann mit Werten
so weit, so gut... bis dahin klappt ja auch alles
Aber da das nur ein Testprog ist, möchte ich vom Beenden des Progs den Key wieder löschen...
die Einträge (Values) gehen auch...naja fast, bis auf den "(Standard)" Eintrag... aber den kann ich über Windows->ausführen->regedit auch nicht entfernen -.-
Ich poste mal den Code, vl weiß ja einer von euch, was ich falsch mache:
Und in Zeile 55 bekomm ich jedes Mal den Error: "Cannot delete a subkey tree because the subkey does not exist."
Aber ich überprüf doch vorher ob er noch da ist 

Seit 3 Stunden spiel ich mich schon damit, aber ich bekomms nicht zusammen -.-
Ich überprüfe am Anfang meiner Applikation ob ein RegEintrag vorhanden ist... wenn keiner da ist, erstell ich einen....
den fülll ich dann mit Werten
so weit, so gut... bis dahin klappt ja auch alles
Aber da das nur ein Testprog ist, möchte ich vom Beenden des Progs den Key wieder löschen...
die Einträge (Values) gehen auch...naja fast, bis auf den "(Standard)" Eintrag... aber den kann ich über Windows->ausführen->regedit auch nicht entfernen -.-
Ich poste mal den Code, vl weiß ja einer von euch, was ich falsch mache:
C++:
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
try
{
RegistryKey ^regKey = Registry::LocalMachine;
regKey = Registry::LocalMachine->OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\XXX888XXX", true);
// if there is not allready a regKey, create one
if(regKey == nullptr)
{
if (MessageBox::Show("Create one?","No RegistryKey found", MessageBoxButtons::YesNo) == ::DialogResult::Yes)
{
// create Registry Key
MessageBox::Show("CREATE...");
// Install / Edit Reg Key
regKey = Registry::LocalMachine->CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\XXX888XXX"); //SOFTWARE\\RDCS\\REGEDIT_TEST XXXX 8888 XXXX\\CurrentVersion");
// Create data for the regKey
MessageBox::Show("CREATE VALUES...");
regKey->SetValue( "Language", "German" );
regKey->SetValue( "Level", "Intermediate" );
regKey->SetValue( "ID", 8888 );
// test if key exists
MessageBox::Show("TESTING KEY...");
if(regKey->GetValue("Language", "German") &&
regKey->GetValue("Level", "Intermediate") &&
regKey->GetValue("ID", 8888))
{
MessageBox::Show(" successfully Key Created: " + regKey->Name);
//now delete RegKey
MessageBox::Show("DELETING VALUES...");
regKey->DeleteValue("Language");
regKey->DeleteValue("Level");
regKey->DeleteValue("ID");
if (regKey->GetValue("Language") &&
regKey->GetValue("Level") &&
regKey->GetValue("ID") == nullptr)
{
MessageBox::Show("Values deleted");
}
MessageBox::Show("DELETING KEY...");
if (regKey != nullptr)
{
MessageBox::Show(regKey->ToString());
regKey->DeleteSubKeyTree("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\XXX888XXX");
}
regKey->Close();
}
else
{
throw gcnew System::Exception(" creating Key not successfull :( ");
}
}
else
{
// do nothing
MessageBox::Show("DO NOT CREATE");
}
}
else
{
MessageBox::Show("RegKey Found! " + "Type: " + regKey->GetType() + " Name: " + regKey->Name);
}
}
catch (System::Exception ^e)
{
throw gcnew Exception(" Error with Registry Edit! " + e);
// in case of an error, delete the regKey if exits
RegistryKey ^regKey = Registry::LocalMachine->OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\XXX888XXX", true);
if (regKey != nullptr)
{
// Delete
regKey->DeleteSubKeyTree("HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\XXX888XXX");
regKey->Close();
}
}
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}
Und in Zeile 55 bekomm ich jedes Mal den Error: "Cannot delete a subkey tree because the subkey does not exist."


Zuletzt bearbeitet: