免费游戏更新软件网吧供求信息网吧求职招聘游戏更新情报全站搜索网吧论坛网络收藏夹BT下载
网站首页 | 网吧新闻 | 网盟论坛 | 网吧软件 | 网吧技术 | 地方频道 | 网吧方案 | 经营·管理 | 网吧政策 | 网吧配机 | 网吧资讯 | 博客
网吧展示 | 网络追踪 | 无盘技术 | 网吧系统 | 软件应用 | 硬件相关 | 网络技术 | 对比·更新 | 行业资讯 | 网吧程序 | 网游资讯 | 建站
您现在的位置: 天下网吧 >> 网吧焦点 >> 网吧程序学习 >> Delphi学习 >> 快速入门 >> 文章正文
网管第五个程序(操作注册表)
作者:[友亚] 来源:[赛迪网] 时间:[2006-12-26]       ★★★★★ 添加到百度搜藏 添加到百度搜藏

以下是程序实例教程,功能是写入一个注册表启动项目到windows注册表中HKEY-LOCAL-MACHINE中:

放入一个按钮组件,标题取为‘开始写入值’另一个按钮是‘删除写入值’。

功能就是写入/删除注册表项:c:\qmenu.exe到系统注册表项目中的启动项目中去。

 

双击按钮组件,转到代码编辑窗口,注意,先在顶部的uses后面引用部份加上注册表单元,Registry,然后在按钮组件单击事件中分别插入以下代码:

procedure TForm1.btn1Click(Sender: TObject);   //写入值
var
  tmpReg                                                              : TRegistry;
begin
  tmpReg := TRegistry.Create;
  try
    tmpReg.RootKey := HKEY_LOCAL_MACHINE;                             //设置要操作的注册表的根键值
    if tmpReg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True) then //如果打开此注册表成功,刚进入写入操作.
    begin
      tmpReg.WriteString('delphi测试', 'c:\qmenu.exe');               //开始写入操作
    end;
  finally
    tmpReg.Free;
  end;
end;

这样,点击写入按钮时,你可以在注册表中看到效果:

procedure TForm1.btn2Click(Sender: TObject); //删除值
var
  tmpReg                                                              : TRegistry;
begin
  tmpReg := TRegistry.Create;
  try
    tmpReg.RootKey := HKEY_LOCAL_MACHINE;                             //设置要操作的注册表的根键值
    if tmpReg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True) then //如果打开此注册表成功,刚进入写入操作.
    begin
      tmpReg.DeleteValue('delphi测试');                               //开始删除值操作
    end;
  finally
    tmpReg.Free;
  end;
end;

下载本例源程序:

注册表.rar

以下是详细的delphi的操作注册表的使用方法,来自网上收集:

 

 

32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息。
   一、创建和释放TRegistry对象
   1.创建TRegistry对象。为了操作注册表,要创建一个TRegistry对象:ARegistry := TRegistry.Create;
   2.释放TRegistry对象。对注册表操作结束后,应释放TRegistry对象所占内存:ARegistry.Destroy。

  二、指定要操作的键
   操作注册表时,首先应指定操作的主键:先给属性RootKey赋值以指定根键,然后用方法OpenKey来指定要操作的主键名。
   1.指定根键(RootKey)。
   根键是注册表的入口,也注册表信息的分类,其值可为:
   HKEY-CLASSES-ROOT:存储整个系统对象类信息,如ActiveX对象注册、文件关联等信息。
   HKEY-CURRENT-USER:存储当前用户的配置信息。为属性RootKey的默认值。
   HKEY-LOCAL-MACHINE:存储当前系统的软硬件配置信息。应用程序自己的信息可以存储在该根键下。
   HKEY-USERS:存储所有用户通用的配置信息。
   还可以是HKEY-CURRENT-CONFIG、HKEY-DYN-DATA。
   2.指定要操作的主键。
   Function OpenKey(const Key: string; CanCreate: Boolean): Boolean;
   Key:主键名,是键名全名中除去根键的部分,如Software。
   CanCreate:在指定的主键名不存在时,是否允许创建该主键,True表示允许。
   返回值True表示操作成功。
   3.关闭当前主键。
   在读取或存储信息之后,应及时将关闭当前主键:procedure CloseKey。

  三、从注册表中读取信息
   Read系列方法从注册表读取指定的信息(字符串、二进制和十六进制),并转换为指定的类型。
   1.Read系列方法。
   function ReadString(const Name: string): string;
   读取一个字符串值,Name为字符串名称。
   function ReadInteger(const Name: string): Integer;
   读取一个整数值,Name为整数名称。
   function ReadBinaryData(const Name: string; var Buffer; BufSize: Integer):Integer;
   读取二进制值,Name为二进制值名称,Buffer为接收缓冲区,BufSize为缓冲区大小,返回为实际读取的字节数。
   其它方法还有:ReadBool、ReadCurrency、ReadDate、ReadDateTime、ReadFloat、ReadTime。
   2.读取信息一例(显示Windows的版本)。
   在HKEY-LOCAL-MACHINE下,有三个字符串值Version、VersionNumber和SubVersionNumber,用于记录当前Windows的版本号。
   {请在Uses中包含Registry单元}
   procedure TForm1.Button1Click(Sender:TObject);
   var
   ARegistry : TRegistry;
   begin
   ARegistry := TRegistry.Create;
   //建立一个TRegistry实例
   with ARegistry do
   begin
   RootKey := HKEY-LOCAL-MACHINE;//指定根键为HKEY-LOCAL-MACHINE
   //打开主键Software
   if OpenKey( ′Software′,false ) then
   begin
   memo1.lines.add('Windows版本:′+ ReadString(′Version′));
   memo1.lines.add('Windows版本号:′ + ReadString(′VersionNumber′));
   memo1.lines.add(′Windows子版本号:′ + ReadString(′SubVersionNumber′));
   end;
   CloseKey;//关闭主键
   Destroy;//释放内存
   end;
   end;

  四、向注册表中写入信息
   Write系列方法将信息转化为指定的类型,并写入注册表。
   1.Write系列方法。
   procedure WriteString(const Name, value: string);
   写入一个字符串值,Name为字符串的名称,value为字符串值。
   procedure WriteInteger(const Name: string; value: Integer);
   写入一个整数值。
   procedure WriteBinaryData(const Name: string; var Buffer; BufSize: Integer);
   写入二进制值,Name为二进制值的名称,Buffer为包含二进制值的缓冲区,BufSize为缓冲区大小。
   其它方法还有:WriteBool、WriteCurrency、WriteDate、WriteDateTime、WriteFloat、WriteTime。
   2.写入信息一例。
   下面程序使Delphi随Windows启动而自动运行。
   var
   ARegistry : TRegistry;
   begin
   ARegistry := TRegistry.Create;
   //建立一个TRegistry实例
   with ARegistry do
   begin
   RootKey:=HKEY-LOCAL-MACHINE;
   if OpenKey(′Software′,True) then
   WriteString(′delphi′,′C:Files.exe′);
   CloseKey;
   Destroy;
   end;
   end;

  五、键值维护
   除了在注册表中读取、存储外,程序可能还需要增加主键、删除主键、主键改名、数据值改名等。
   1.创建新主键:function CreateKey(const Key: string): Boolean。
   Key即为主键名,返回值True表示操作成功。
   2.删除主键:function DeleteKey(const Key: string): Boolean。
   Key即为主键名,返回值True表示操作成功。
   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下的数值名称的方法来进行。
   6.判断数值名称存在、数值名称改名。
   valueExists用于判断数值名称是否存在:
   function valueExists(const Name: string): Boolean;
   返回值为True表示数值名称存在。
   Renamevalue用于数值名称改名:
   procedure Renamevalue(const OldName, NewName: string);
   以上是注册表常用操作所对应的TRegistry的方法和属性,其它方法和属性请参见Delphi联机帮助文件。

下载免费游戏更新软件

关键字:基本入门
相关文章
网管第八个程序(多线路切换器)
网管第七个程序(漂亮的网吧公告)
网管第六个程序(类资源管理器程序)
网管的第四个程序(简单的QQ登录菜单)
网管第三个程序,操作ini文件
网管的第二个程序(调用外部程序)
网管第一个程序,显示‘我爱你,网吧’
  • 上一篇文章:

  • 下一篇文章:

  • 在线视频教程二

    网管第八个程序

    程在线视频教程

    网管第七个程序

    程在线视频教程
    网友评论: 【点此发表评论】 【 看不懂,进入论坛讨论 】【 Top
    博客最新 更多..

    声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系邮箱:support@txwb.com.

    推荐文章
    推荐文章 网管第八个程序
    推荐文章 网管第七个程序
    推荐文章 程在线视频教程
    推荐文章 网管第五个程序
    推荐文章 网管的第四个程
    推荐文章 在线视频教程二
    推荐文章 在线视频教程一
    最新文章
    固顶文章 [txwb、baidu]网
    固顶文章 游戏更新情报站
    固顶文章 游戏更新网站调
    普通文章 从事网吧计算机
    普通文章 2007-12-26游戏
    普通文章 腾讯QQ200
    普通文章 windows xp各组
    普通文章 XP系统中重置TC
    普通文章 2007-12-25游戏
    普通文章 XP系统“虚拟内
    普通文章 巧用Syskey命令
    普通文章 网管是否也该带
    推荐图文

    网管第八个程序(多线路切换

    网管第七个程序(漂亮的网吧

    程在线视频教程十八(实例:

    网管第五个程序(操作注册表

    网管的第四个程序(简单的QQ
     
    关于天下 | 联系方式 | 版权声明 | 免责条款 | 隐私保护
    Email :support#txwb.com (#换成@) 天下网吧,网吧天下,网吧联盟,天下网盟,网吧联盟欢迎你|提出意见