最近作了个修改注册表的程序,写下自己的体会,希望初学者能少走弯路,也希望高手不吝赐教。
1.注册表结构:根键--子键--键值名--键值
如:根键HKEY_LOCAL_MACHINE
    子键\SoftWare\Microsoft\Windows\CurrentVersion\Run
    键值名RavMon
    键值'c:\programfiles\...\ravmon.exe'
2.Delphi中根键封装为rootkey,子键称为key,键值名为valume
  Delphi中引用注册表类先要在uses中加入registry
  然后
      var reg:tregistry;
              reg:=tregistry.creat;
              reg.rootkey:=HKEY_LOCAL_MACHINE;//这里不加''
记住最后要reg.free;
(1)打开子键reg.openkey('\SoftWare\Microsoft\Windows\CurrentVersion\Run',false);
//false是指若子键不存在则不创建,改为true则子键不存在时自动创建
(2)if reg.valumeexists('RavMon') then//判断键值名是否存在
(3)更改键值,先reg.openkey(),再reg.writestring('RavMon','c:\programfiles\...\ravmon.exe');
3.获取某一子键下所有键值名
  if reg.openkey() then
    reg.getvalumenames(ms);//ms为一tstringlist类型,应事先声明,并且不要声明为tstrings类型
4.若某一子键下有默认值(若从regedit中看时它没有键值名),可用下面方法更改其键值reg.writestring('','your string');