tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
0
ZUGRIFFE
1068
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von the incredible Leitman
    the incredible Leitman the incredible Leitman ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Ort
    ÖSTERREICH
    Beiträge
    406
    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:
    Code cpp:
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    
    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."
    Aber ich überprüf doch vorher ob er noch da ist o.O
    Geändert von the incredible Leitman (23.01.07 um 22:19 Uhr)
     
    Meine Blogs:
    theIncredibleLeitman.blogspot.com // Tec
    Gamesdev.de // Gamedevelop

    Ein echter Programmierer hat nur natürliche 3 Feinde:
    • Sonnenlicht
    • Frischluft
    • und das unerträgliche Gebrüll der Vögel
    Ownage
    steht für die Fähigkeit einer Person, andere zu ownen, zum Beispiel „Ich habe die totale ownage.“ Gleichzeitig kann es aber auch die positive Qualität einer Sache beschreiben: „Counterstrike owns!“
    (siehe:http://de.wikipedia.org/wiki/Computerspieler-Jargon)

Ähnliche Themen

  1. Software kann nicht gelöscht werden
    Von mnbvcxy im Forum Handy, PDA & mobile Welt
    Antworten: 4
    Letzter Beitrag: 14.04.08, 11:41
  2. Ordner kann nicht gelöscht werden
    Von blubbbla im Forum PHP
    Antworten: 1
    Letzter Beitrag: 17.01.08, 10:06
  3. Datei kann nicht erstellt werden! - Registry
    Von Nohh im Forum Delphi, Kylix, Pascal
    Antworten: 1
    Letzter Beitrag: 17.09.07, 10:31
  4. Verzeichnis kann nicht gelöscht werden
    Von Valeri im Forum Microsoft Windows
    Antworten: 4
    Letzter Beitrag: 11.01.04, 20:28
  5. Riesen Problem - Partition kann nicht gelöscht werden.
    Von onkel_jonny im Forum Microsoft Windows
    Antworten: 6
    Letzter Beitrag: 09.12.03, 11:03