uses Registry;
Registry为我们提供了操作注册表的方法,这里我们用TRegIniFile提供的方法,TRegIniFile继承自TRegistry,TRegIniFile提供的方法类似于前面讲到的操作Ini文件的方法,这样就大大简化了我们操作"神秘"注册表的方法,下面是常用的方法:
- function CreateKey(const Key: String): Boolean; 创建Key
- function OpenKey(const Key: String; CanCreate: Boolean): Boolean; 打开Key,当CanCreate为True时,如果Key不存在,会自动创建
- procedure EraseSection(const Section: String); 删除
- WriteString,WriteInteger,WriteBool,WriteCurrency 写值
- ReadString,ReadInteger,ReadBool,ReadCurrency 读值
- ReadSection,ReadSections,ReadSectionValues 这些是不是很眼熟,和INI文件的方法一样
看例子
- 创建节点
var
reg:TRegIniFile;
begin
reg := TRegIniFile.Create; //创建实例
reg.RootKey := HKey_Local_Machine; //设置根值
if reg.OpenKey('SOFTWARE\MyReg',True) then //打开 HKey_Local_Machine\SOFTWARE\MyReg,如果MyReg不存在,则自动创建
begin
//在HKey_Local_Machine\SOFTWARE\MyReg下创建MySec项,然后在MySec中创建一个字符串MyValue,值为China
reg.WriteString('MySec','MyValue','China');
end;
end;
删除值
var
reg:TRegIniFile;
begin
reg := TRegIniFile.Create; //创建实例
reg.RootKey := HKey_Local_Machine; //设置根值
if reg.OpenKey('SOFTWARE\MyReg\MySec',True) then
begin
//删除HKey_Local_Machine\SOFTWARE\MyReg\MySec下MyValue一项
reg.DeleteValue('MyValue');
end;
end;
删除Key
var
reg:TRegIniFile;
begin
reg := TRegIniFile.Create; //创建实例
reg.RootKey := HKey_Local_Machine; //设置根值
if reg.OpenKey('SOFTWARE\MyReg',True) then
begin
//删除HKey_Local_Machine\SOFTWARE\MyReg下的MySec
reg.EraseSection('MySec');
end;
end;
读取Key的列表以及读取Key下值的列表都与INI文件的操作类似,这里就不再熬述了.