TRegistry DeleteKey funktioniert nicht
-
Was Akari meinte war: Solange wir nicht wissen was du genau tust, kann dir auch keiner sagen was falsch ist. Solange wir nicht wissen was überhaupt falsch läuft, kann keiner allfällig geposteten code (wink mit dem Zaunpfahl) beurteilen... Ists jetzt klarer?
-
OK! Das ganze anders herum!
Hat jemand schon mal einen Key aus der Registry gelöscht?
Wenn ja: WIE???Brauche ziemlich schnell eine Lösung (Schulprojekt
)
-
bool DeleteKey (AnsiString Key);
tut's da wohl nicht ?
eventuell musst du den Key vorher mit bool OpenKey (AnsiString Key, bool CanCreate); behandeln ?
tut mir leid ich kann das hier nicht testen, ich muss mein programm weiterschreiben
-
Solange Du uns nicht zeigst, wie Du das machst, können wir Dir auch nicht sagen, was Du falsch machst...
-
megabyte schrieb:
OK! Das ganze anders herum!
Hat jemand schon mal einen Key aus der Registry gelöscht?
Wenn ja: WIE???Brauche ziemlich schnell eine Lösung (Schulprojekt
)Hallo
In der Builder hilfe ist zu TRegistry::DeleteKey ein vollständiges funktionsfähiges Beispiel.
bis bald
akari
-
In der Builder hilfe ist zu TRegistry::DeleteKey ein vollständiges funktionsfähiges Beispiel.
schliess bitte nicht immer von dir auf andere :p, in meiner hilfe ist nämlich kein beispiel! ... zumindest nicht unter TRegistry::DeleteKey, kann sein das es eins bei delphi gibt aber wer schaut da schon nach wenn er C benutzt .... ja ich bin faul <_<
-
Hm bei mir ist auch ein komplettes Beispiel. Das heißt sowohl im BCB 5, als auch im BCB 6 ist es drin. Welche Version hast Du denn, respektive der Threadersteller?
-
Hallo
im Builder 5 Professionell ist das Beispiel jedenfalls dabei.
bis bald
akari
-
TRegistry::DeleteKey Methode
Entfernt einen bestimmten Schlüssel und die zugehörigen Daten aus der Registrierung.
Klasse
TRegistrySyntax
[C++] bool DeleteKey (AnsiString Key);
Beschreibung
DeleteKey entfernt den angegebenen Schlüssel sowie die zugehörigen Daten (falls vorhanden) aus der Registrierung.
DeleteKey gibt bei Erfolg den Wert true zurück. Im Fehlerfall lautet der Rückgabewert false.Verwandte Informationen
TRegistry::CreateKey
TRegistry::DeleteValueBorland
Copyright
2005 Borland Software Corporation. Alle Rechte vorbehalten.das iss alles was bei mir steht, auch kein link zu nem beispiel oder so .... kann sein das ich woanders suche als ihr oder ich gar aufm schlauch steh, ich lass mich deswegen gern belehren ^^
PS: Borland Developer Studio 2006
-
Wär nicht das erste Mal, dass bei einer neuer Version Beispiele entfernt werden...
Zusätzlich zu dem Text von Dir, befindet sich im BCB 6 noch folgedens Beispiel:In dieser Ereignisbehandlungsroutine für OnClick werden alle Werte gelöscht, die in der Registrierung unter dem angegebenen Schlüssel vorhanden sind.
void __fastcall TForm1::Button1Click(TObject *Sender) { TRegistry Reg = new TRegistry; try { Reg->RootKey = HKEY_LOCAL_MACHINE; // Abschnitt in der Registrierung if (!Reg->OpenKey(Edit1->Text,false)) ShowMessage("Error opening key"); else { TStringList Val = new TStringList; try { Reg->GetValueNames(Val); for (int i = 0; i < Val->Count; i++) { ShowMessage(Edit1->Text + "\n" + "has an Entry Called "+Val->Strings[i]+"\n"+ "With a Value of "+Reg->ReadString(Val->Strings[i])); } if (Application->MessageBox("OK to delete the key and lose these values?", "Delete?", MB_YESNO) == IDYES) Reg->DeleteKey(Edit1->Text); } __finally { delete Val; } } } __finally { delete Reg; } }
-
Ich verwende den BCB 6 Pro, habe ein Beispiel drin in der Hilfe, aber das haut einfach nicht hin.
TRegistry * key = new TRegistry(); key->RootKey = HKEY_CURRENT_USER; key->OpenKey("\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", false); key->DeleteKey("\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\swg"); key->CloseKey(); delete key;Hab's schon mit und ohne OpenKey und CloseKey versucht, genauso, wie ich schon den Pfad bei DeleteKey weg und dran gemacht hab.
Immer das gleiche Ergebnis: DER SCH.... KEY WIRD NICHT GELÖSCHT!!!!!
HIIIIIILFEEEEEE 
-
Dein Source funktioniert ohne Probleme.
Willst Du auch wirklich einen Schlüssel und nicht einen Value löschen? Aktualisierst Du die Registry-Anzeige nachdem Dein Programm beendet wurde?
-
muss man den spass nich noch irgendwie speichern wenn man das programm beendet ?
-
@Joe: Dieses Beispiel kommt bei mir erst, wenn ich oben auf Example klicke, (BCB6 Prof) was der OP vermutlich nicht gemacht hat.
@megabyte Behauptet denn DeleteKey sie sei erfolgreich ausgeführt worden?
Kann auch durchaus ein Berechtigungs problem sein. Nicht jeder hat die Erlaubnis in HKEY_LOCAL_MACHINE zu schreiben. CURRENT_USER istda schon viel freundlicher... (o:
@Ceos Was soll man speichern sollen?
-
Sorry! Alle Hektik war umsonst! Ich hab DeleteKey und DeleteValue verwechselt!

Ich war der Meinung, dass das auf der rechten Seite in Regedit Keys stehen und der Value der Wert ist der in dem Key steht.Sorry war alles nur ein Verständnisproblem!
Trotzdem vielen Dank für die Hilfe.
Und ohne euch wäre ich auch nicht drauf gekommen.
-
Der Punkt geht dann wohl an mich
