Registry
-
Hallo,
mittels folgenden Code lösche ich einen Wert in der Registry:
TRegistry& regkey=*new TRegistry(); regkey.RootKey=HKEY_LOCAL_MACHINE; bool keygood = regkey.OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",false); regkey.LazyWrite=false; if(keygood) regkey.DeleteValue(ListBox1->Items->Strings[ListBox1->ItemIndex]); //evtl. noch das Ergebnis aufheben regkey.CloseKey(); delete ®key;
jetzt würde ich gerne mehrere Einträge auswählen und löschen nur wie? Grübelnd...
Oder ich suche einen Wert der mehrmals auftaucht und die Werte möchte ich dann alle löschen.MfG
-
Schleife?
greetz KN4CK3R
-
und wie kann ich nach einen wert mit edit1 suchen ?
habs imoment so :
TRegistry* regkey= new TRegistry(); regkey->RootKey=HKEY_LOCAL_MACHINE;; if(regkey->OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",false)) { TStrings *list=new TStringList(); regkey->GetValueNames(list); for (int lv = 0; lv < list->Count; lv++) { AnsiString subkeyname = list->Strings[lv]; ListBox1->Items=list; } delete list; } delete regkey; ListBox1->Visible=true;
-
if(subkeyname == Edit->Text)
greetz KN4CK3R
-
hi,
danke für die antwort habs jetzt so:AnsiString subkeyname; TRegistry* regkey= new TRegistry(); regkey->RootKey=HKEY_LOCAL_MACHINE;; if(subkeyname == Edit1->Text) { TStrings *list=new TStringList(); regkey->GetValueNames(list); for (int lv = 0; lv < list->Count; lv++) { AnsiString subkeyname = list->Strings[lv]; ListBox1->Items=list; } delete list; } delete regkey; ListBox1->Visible=true;
es erscheint auch keine fehöermeldung nur wenn ich jetzt einen Wert suche möchte mit Edit erscheint nichts in meiner ListBox, ne Idee ?
mfg
-
weil subkeyname an der Stelle noch keinen Wert hat...
Meinste nicht, du solltest erstmal mit Hilfe von nem Buch oder so ein bissel die Grundlagen von C++ lernen?greetz KN4CK3R
-
KN4CK3R schrieb:
weil subkeyname an der Stelle noch keinen Wert hat...
...und weil, wie es aussieht, kein OpenKey im Code ist.
Im ersten Listing fehlt auch ein regkey->CloseKey();
mfg
kpeter