Registry Eintrag abfragen
-
String a="test1", b="test2", c="test3",registry-eintrag1, registry-eintrag2, registry-eintrag3; if (registry-eintrag1=a) Application->MessageBox("Info","jo", 32); else Application->MessageBox("Info","noe", 32); if (registry-eintrag2=b) Application->MessageBox("Info","jo", 32); else Application->MessageBox("Info","noe", 32); if (registry-eintrag3=c) Application->MessageBox("Info","jo", 32); else Application->MessageBox("Info","noe", 32);so soll das in etwa aussehen, nur weiß ich nicht wie ich die registry nach den einträgen abfrag und die dann in nen String bekomm, falls ich es nicht schon in nem String geliefert bekomm.
hoffe ihr könnt mir weiterhelfen.
greez
Weedy
-
TRegistry?
-
hab ich mir schon angeschaut, versteh aber leider net wie ich das umsetzen soll...
(<== volln00b *g*)
-
-
Ich hab bei "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\{90110407-6000-11D3-8CFE-0150048383C9}" unter dem namen "DisplayName" den Wert "Microsoft Office Professional Edition 2003" stehen.
void __fastcall TForm1::Button1Click(TObject *Sender) { //Eine neues TRegistry Object angelegen TRegistry& regkey=*new TRegistry(); //Wenn abweichend von HKEY_CURRENT_USER den RootKey setzen (das ist ein INT-Wert!!): regkey.RootKey=HKEY_LOCAL_MACHINE; //Den gewünschten Schlüssel vorgeben //hier jetzt false (nur lesen wenn auch da) bool keygood=regkey.OpenKey("\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{90110407-6000-11D3-8CFE-0150048383C9}",false); //Wenn ein gültiger Schlüssel da ist if(keygood) { //Wenn unser Wert da ist if(regkey.ValueExists("DisplayName")) { //wird er in die Variable bo (bool) gelesen // bool bo=regkey.ReadBool("DisplayName"); } String st; //Wenn unser Wert da ist erhält die //Variable st den Inhalt ansonsten "kein Wert" regkey.ValueExists("Microsoft Office Professional Edition 2003")?st=regkey. ReadString("DisplayName"):st="kein Wert"; Edit1->Text=st; Label1->Caption=st; } //Registry schliessen regkey.CloseKey(); //Objekt löschen delete ®key; }So hab ichs gemacht, bekomme aber immer "kein Wert" als ausgabe, möchte aber den Wert von "DisplayName" also "Microsoft Office Professional Edition 2003" ausgegeben haben, was hab ich falsch gemacht ?
greez
Weedy
-
Lies dir die Seite nochmals durch und versuche zu verstehen:
//Wenn unser Wert da ist
if(regkey.ValueExists("DisplayName"))
{//wird er in die Variable bo (bool) gelesen
// bool bo=regkey.ReadBool("DisplayName");
}Wozu das? Da sind 2 Beispiele einer für bool einer für String. Brauchst du bool?
regkey.ValueExists("Microsoft Office Professional Edition 2003")?st=regkey. ReadString("DisplayName"):st="kein Wert";Schau nochmal nach: Warum prüfst du, ob ein etwas da ist, um dann etwas anderes zu lesen?
-
autsch, ok ich hab net verstanden gehabt wie man das mit dem namen, wert und verzeihcnis machen muss, jetzt funktionierts...
THX 4 HELP
Weedy