注册表是Windows操作系统的数据库它里面存着Windows启动和执行各种程序所需要的重要数据我们经常要修改注册表对系统进行优化好满足我们不同的需要。
在编写程序的过程中我们有时候也要修改注册表,好实现某种功能。其实微软为我们设计了一系列API函数我们可以通过调用这些函数来执行修改注册表的功能。
在这里向大家介绍两个经常要使用的函数,RegCreateKeyEx函数可以打开注册表,并且打开指定的子键,如果该键不存在就创建它。这个函数经常用来在注册表增加新的子键。RegSetValueEx函数用来向注册表里写数据它经常用来修改键值。
下面我们编写一个例子程序来说明这两个函数的具体用法.
我们使用VC++6.0来写这个程序。打开VC++6.0,使用MFC AppWizard新建一个基于对话框的工程,工程名为zhucebiao,在对话框上加上一个button控件,标题为“修改注册表”,在MFC ClassWizard中添加一个当我们使用鼠标单击这个控件时响应的函数,函数代码为:
//使用RegCreateKeyEx函数在HKEY_LOCAL_MACHINE主键的SOFTWARE子键下新建1个名称为“选中文字”的子键hKey为返回的句柄可以在其它函数中使用这个句柄。 HKEY hKey DWORD dwDip long ret=RegCreateKeyExHKEY_LOCAL_MACHINE_T″SOFTWARE\\选中文字″0lNULLREG_OPTION_VOLATILEKEY_ALL_ACCESSNULL&hKey&dwDip CString str=″aaaaaaa″ DWORD leng=str.GetLength+1 LPBYTE lpb=new BYTEstr.GetLength+1 forint i=0;i<str.GetLength;i++ lpbi=stri lpbstr.GetLength=0 //使用RegSetValueEx函数为新建的子键设置键值第1个参数为打开的代表该子键的句柄,第2个参数是子键名称,NULL代表修改默认值,第3个参数保留这里写NULL,第4个参数代表要设置的数据类型,这里是REG_SZ代表写入的是字符串第5个参数是写入的数据长度。再在程序中把默认值设置为了变量str的值。 long ret2=RegSetValueExhKeyNULLNULLREG_SZlpbleng DWORD dwCon=243 //使用RegSetValueEx函数为新建的子键建立了一个名为con的键值,它的数据类型为DWORD类型,数据为243 ret2=RegSetValueExhKey_T″con″NULLREG_DWORDconst byte&dwConsizeofDWORD //最后不要忘记使用RegCloseKey函数来关闭这个句柄 RegCloseKeyhKey |
本程序使用VC++6.0在Windows98下编译,调试成功。