Arbeiten mit der Registry
-
Ich hab nachgeschaut aber ich verstehe es nicht ganz. Wie kann man ein Verzeichnis auswählen?
-
ist eigentlich ganz einfach. zuerst erstellst du dir eine instanz von TRegistry. dann kannst du mit deren methode OpenKey einen schlüssel öffnen, mit ReadString z.b. auslesen und dann mit CloseKey wieder schließen.
ein wechsel des hauptschlüssels ist mit RootKey möglich.cu, raphael
-
Kannst du mal ein Beispiel machen z.B: bei "HKEY_CURRENT_USER/Software/ASCII/RPG2000" bei "RuntimePackagePath" den Wert in ein Memo.
-
Beispiele findest du u.a. in der Hilfe zu den TRegistry-Methoden, in der FAQ und im BCB-Tutorial hier.
-
Ich verstehe es trotzdem noch nicht ganz könntet ihr ein Beispiel machen?
-
Kein Wunder, dass du das nicht verstehst. Schliesslich dürfte es schon schwierig sein, sich die aufgeführten Quellen in den maximal 32 Minuten durchzulesen, geschweige denn, die Beispiele auch mal auszuprobieren und damit herumzuexperimentieren.
Ein bischen Eigenleistung gehört schon dazu.
-
Ich habs durchgelesen und nicht verstanden
. Was soll ich dann ausprobieren?
-
hallo,
ich will dir nicht den mut nehmen, aber programmieren ist immer auch wenn man schon seit jahren dabei ist, auch ausprobieren. wenn jemand dazu nicht in der lage ist, wird er es sehr schwer haben, auch mit den "visuellen umgebungen"...
jetzt gehst du mal her, packst einen button auf ein form erzeugst einen event-handler und ind diesem kannst du dann probieren:
TRegistry *Reg = new TRegistry(); Reg->RootKey = HKEY_CURRENT_USER; if (Reg->OpenKey("Software\...", True) { ... ... } Reg->CloseKey();
dann gehst du her und schaust in der registry nach was da passiert, und dann legst du dir nen zweiten button drauf, indem du die werte die du schreibst wieder aus der reg auslesen tust und in edits etc. auf dem form anzeigst. in der hilfe steht für alles ein beispiel. und mit der vcl-klasse tregistry ist das wirklich alles pipi im vergleich zur früheren "handarbeit"...
also, nur mut...
mfg
murphy
-
Danke! Ich werds gleich mal ausprobieren.
Aber für was ist die Bedingung?
-
Schau dir hald mal an was OpenKey() so macht und zurück liefert etc...
Und dann solltest du dich hier ebenfalls nochmals etwas belesen.
-junix
-
Hallo,
erlaubt mir bitte das ich kurz diesen alten Thread übernehme, dann brauch ich ja keinen neuen aufmachen und alles von hier wiederholen.
Ich wollte das mit der registry mal testen, weil ich gerade ein kleines Tool schreibe wo ich das brauchen könnte.
Hab mir die Links hier drin durchgelesen, nur habe ich jetzt ein Problem
Hier erstmal mein Code:
#include <Registry.hpp> void __fastcall Tserverchanger::Button1Click(TObject *Sender) { TRegistry *Reg = new TRegistry(); Reg->RootKey = HKEY_LOCAL_MACHINE; if (Reg->OpenKey("SOFTWARE\ODBC\ODBC.INI\Intuitiv32", True)) { Reg->WriteString("ServerName","test"); } else { fehler->Caption = "Fehler !!"; } Reg->CloseKey();
Ich habs eigentlich genauso wie im Beispiel gemacht, nur bei mir liefert der openkey immer false zurück
wenn ich die Klasse richtig verstanden habe müsste es aber so gehen, oder bin ich einfach nur doof
Würde mich sehr über eine Antwort freuen was bei mir falsch ist.
Gruss Nasenbaer
-
Doppelslash:
reg->OpenKey("\\SOFTWARE\\ODBC\\ODBC.INI\\Intuitiv32", false);
Doppelslash auch vor "SOFTWARE"!
Hoffe, es hilft
xy
-
BOAHH *mitm Kopf auf Tischplatte hämmer*
Mann bin ich doof *schäm*
Immer wieder vergess ich die Steuerzeichen
Danke jetzt gehts
Gruss Nasenbaer