注册表编程扫盲(二)

二。RegOpenKeyEx,以及RegCloseKey
先说一下RegOpenKeyEx,看字面的意思就知道是打开一个键,由于RegCreateKeyEx也可以打开一个键的,所以这个函数就有点那个了。不过这个函数比RegCreateKeyEx简单n倍,所以还是很有用的了。它是这样声明的:
LONGRegOpenKey(HKEYhKey,LPCTSTRlpSubKey,PHKEYphkResult);
一看,这些参数是不是很熟悉了啊?hKey,lpSubKey,phkResult的意思和RegCreateKeyEx函数中这些参数的意思没什么两样了。这里不多说了,到上一节去看看就知道了。返回值还是老样子,ERROR_SUCCESS就表示成功打开了。
再来看看RegCloseKey,很简单,只有一个参数:
LONGRegCloseKey(HKEYhKey)就是关闭一个键了,关闭一个键以后,句柄就没用了。我不知道关闭一个键了和不关有什么不同,不过养成随时关闭的习惯总是有好处的。返回值?不用说,同上。

三。RegSetValueEx
RegSetValueEx,也就是已经知道一个键句柄了,对这个键的数据进行新建或改写。就好象已经知道一个文件夹,然后对其中的文件改动。一看就知道很有用了。对一些系统的数据改动的话,可以产生很牛的效果!!!啊,真是振奋人心啊!!!不过不要乱改啊,把系统该坏了别找我啊。少说废话了,看一下怎么用的:
LONGRegSetValueEx(
HKEYhKey,
LPCTSTRlpSubKey,
DWORDReserved,
DWORDdwType,
LPCTSTRlpData,
DWORDcbData
);
hKey:不用说了吧?
lpSubKey:字符串,就是你要设置的数据项的名字了,就好象文件名那样。
Reserved:没用,必须是0。
dwType:数据的类型,有很多种,我只说两种常用的了。REG_SZ和REG_DWORD,就是字符串型和DWORD(unsignedlong)型了。一般就是这两种的。
lpData:就是你要设置的数据了,如果是字符串的话,先要把首地址强制转化成无符号型的指针,再传过去。如果是整数的话,先取地址,再强制转化成无符号型的字符指针,再串过去。
DWORDcbData:你要设置的数据的长度,如果是字符串型的,则是strlen+1。如果是整数就是4了。返回值同上。
还是举个例吧:
#include<windows.h>
voidmain()
{
DWORDdwRes;
HKEYhk;
charszName[4]="我";
DWORDdwScore=100;
RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\CarrierStudio\\Hello",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hk,
&dwRes
);
RegSetValueEx(hk,"Name",0,REG_SZ,(LPBYTE)szName,3);
RegSetValueEx(hk,"Score",0,REG_DWORD,(LPBYTE)dwScore,4);
RegCloseKey(hk);
}
好了,写了这么多累死我了,先休息一下。



你可能感兴趣的:(编程,windows,Access)