电脑爱好者之家移动版

主页 > 开发资料 > 程序设计教程 > DELPHI程序设计 >

Delphi的注册表操作(3)


  五、键值维护
  除了在注册表中读取、存储外,程序可能还需要增加主键、删除主键、主键改名、数据值改名等。
 
  1.创建新主键:function CreateKey(const Key: string): Boolean。
    Key即为主键名,返回值True表示操作成功。
 
  2.删除主键:function DeleteKey(const Key: string): Boolean。
    Key即为主键名,返回值True表示操作成功。
     删除键值:function DeleteValue(const Key : string) : Boolean;
    使用DeleteKey方法删除指定的关键字时,如果被删除的关键字在任何层次有子关键字,它们将同时被删除。上面两个方法在执行时,如果删除成功,则返回True;否则返回False。

  3.复制或移动主键:procedure MoveKey(const OldName, NewName: string; Delete: Boolean)。
    OldName、NewName分别表示源主键名和目标主键名;Delete表示是否删除源主键,True表示删除,False表示保留。
    复制或移动一个主键将复制或移动该子键下的所有数据值和子键内容。
 
  4.判断指定主键是否存在,其下是否有主键,并获取主键名称。
  
    KeyExists用于判断指定主键是否存在:
  function KeyExists(const Key: string): Boolean;//返回值为True表示主键存在。
    HasSubKeys用于判断指定主键下是否有子键:function HasSubKeys: Boolean;
    返回值为True表示主键下有子键。
   
    GetKeyNames用于获取子键名称:
    procedure GetKeyNames(Strings: TStrings);
     Strings用于返回当前主键下各子键的名称。
 
  5.获取主键下的数据值名称:
    procedure GetValueNames(Strings: TStrings)。
    Strings用于返回当前主键下各数值名称。
    如要获取当前系统中的拨号连接名称,可利用获取主键HKEY_USERS\.DEFAULT\RemoteAccess\Addresses下的数值名称的方法来进行。
 
  6.判断数值名称存在、数值名称改名。
  ValueExists用于判断数值名称是否存在:
  function ValueExists(const Name: string): Boolean;
    返回值为True表示数值名称存在。
 
   RenameValue用于数值名称改名:
  procedure RenameValue(const OldName, NewName: string);
 
   以上是注册表常用操作所对应的TRegistry的方法和属性,其它方法和属性请参见Delphi联机帮助文件。
    以上程序在PWIN 98+Delphi 3.0下调试通过。
 
    六、注册表中对编程常用的几项(ODBC/BDE/Internet/Windows)  
  
    1、关于 ODBC 和 DBE:
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC File DSN
      有你的 COMPUTER 上 ODBC 的 FILE DSN 的存放的缺省路径,如果你建立 FILE DSN 的时候选择了自己的路径,那你就得小心了,系统不会为你保存该路径,你的自己记住它,:-(;
   
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers
      列出了你的所有 ODBC DRIVER,关于 ODBC DRIVER 的名称,有一个比较有趣的地方:不知大家又没有用TSession.GetDriverNames 取过系统 ODBC DRIVER 名,我用的时候 DRIVER 名最长只能取
到 31 个字符,剩下的就被截掉了,不知是我编程有问题还是 DELPHI 的 BUG;
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI
      列出了你的所有 ODBC DRIVER 的详细配置;
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
      列出了你的所有 SYSTEM DSN 以及它们的配置情况;
    HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
      列出了你的所有 USER DSN 以及它们的配置情况;
    知道了以上的几个主键后,你就可以在程序中实现 %SystemRoot%\system32\odbcad32.exe 的大部分功能了。
    HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine
      下面是你的 DBE 的配置,我就不多说了,大家拿它和 BDE 用户界面一比较就明白了。
 
    2、关于 INTERNET 编程:
    HKEY_CLASSES_ROOT\htmlfile
      系统对 HTMLFILE 的处理定义;
    HKEY_LOCAL_MACHINE\SOFTWARE\Clients
      INTERNET Option 中 INTERNET PROGRAM 的设定,尤其重要的是其中的
    HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail。
    3、关于 WINDOWS 编程
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
      每次该用户启动 WINDOWS 必定执行下面的命令(如果有,当然一般都有),
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce
      该用户启动 WINDOWS 必定执行下面的命令(如果有),执行完后由 WINDOWS 把命令删掉,安装软件的时候特别有用,
    以上两处是针对特定用户的,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion 下还有类似的地方,是针对所有用户的,我就不罗嗦了。
(责任编辑:熊猫蜀黍)