您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > BCB > 正文
C++Builder注册表编程实例详解
[文章信息]
作者:马明臣
时间:2003-08-19
出处:yesky
责任编辑:方舟
[文章导读]
注册表中包含了系统配置、机器硬件配置、Win32 应用程序和用户的其他配置信息
advertisement
热点推荐
· 天极网软件频道改版调查
· 在ASP.NET程序中创建唯一序号
· 用JVM工具接口创建调试和分析代理
· Win 2000如何安装配置防火墙
· 防范Windows消息钩子的侵入
[正文]

上一页  1 2 3 4  下一页

  二、应用实例1

  下面我们通过一个示例程序演示了对注册表的常见操作,包括打开主键、读取不同类型的键值、删除键值或主键等。“每次启动电脑自动运行”复选框则实现的作用类似 Win 95 的 Welcome.exe 程序的功能。
首先在窗体添加 Edit1 、 Label1 、 label 2 (用于显示运行次数)、 Button1 、 CheckBox1 ( Caption= “每次启动电脑自动运行”)等几个控件,然后添加以下源代码。生成可执行文件后,改名为 MyReg.EXE 拷贝到 C: 盘根目录下执行即可。

  源代码:

//--------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include -registry.hpp- // 包含头文件
#include -Unit1.h-
//--------------------------------------------
#pragma package(smart_init)
#pragma resource -*.dfm-
TForm1 *Form1;
TRegistry *MyReg=new TRegistry();// 建立实例
//--------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{}
//--------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{MyReg->RootKey=HKEY_CURRENT_USER;
if((MyReg->OpenKey(-\\software\\MyReg-,false))==false)
{MessageBox(NULL,- 感谢第一次使用本软件 !.-,- 欢迎 !-,IDOK);
MyReg->CreateKey(-\\software\\MyReg-);
MyReg->OpenKey(-\\software\\MyReg-,true);
MyReg->WriteInteger(-Number-,0);
MyReg->WriteString(-The String-,Edit1->Text);
}// 检测有无注册表项 , 没有则建立
int num=MyReg->ReadInteger(-Number-);
num++;
MyReg->WriteInteger(-Number-,num);// 使用次数 +1 并写入注册表
Label2->Caption=IntToStr(num);
Edit1->Text=MyReg->ReadString(-The String-);
MyReg->CloseKey();
MyReg->RootKey=HKEY_LOCAL_MACHINE;
MyReg->OpenKey(-\\software\\Microsoft\\windows\\CurrentVersion\\Run-,false);
CheckBox1->Checked=MyReg->ValueExists(-AutoShow-);
MyReg->CloseKey();// 根据是否自动运行设定 CheckBox 状态
}
//--------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{MyReg->RootKey=HKEY_CURRENT_USER;
MyReg->OpenKey(-\\software\\MyReg-,false);
MyReg->WriteString(-The String-,Edit1->Text);
MyReg->CloseKey();//Edit1 改变写入注册表
}
//--------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{MyReg->RootKey=HKEY_LOCAL_MACHINE;
MyReg->OpenKey(-\\software\\Microsoft\\windows\\CurrentVersion\\Run-,false);
if(CheckBox1->Checked)
MyReg->WriteString(-AutoShow-,-c:\\MyReg.EXE-);
else MyReg->DeleteValue(-AutoShow-);
MyReg->CloseKey();// 如果 CheckBox 选中则自动运行 , 否则删除自动运行键值
delete MyReg;
}
//--------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)// 单击 Button1 删除注册表项
{MyReg->RootKey=HKEY_LOCAL_MACHINE;
MyReg->OpenKey(-\\software\\Microsoft\\windows\\CurrentVersion\\Run-,false);
MyReg->DeleteValue(-AutoShow-);
MyReg->CloseKey();//* 删除自动运行键值
MyReg->RootKey=HKEY_CURRENT_USER;
MyReg->DeleteKey(-\\software\\MyReg-);// 删除注册表项
}


上一页  1 2 3 4  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 主板超频特色技术GIGA技嘉篇
  • Win 2000如何安装配置防火墙
  • 防范Windows消息钩子的侵入
  • 性价比之选 AGP显卡的告别秀
  • 大学校园生活之聊天也疯狂
  • Fireworks制作GIF动画Banner
  • 金山打击外挂 遭网络游戏玩家起诉
  • 完全公测《开天》掀起滔滔巨浪
  • Advertisement