VC 注册表操作

1.创建 、打开注册表

LONG RegQueryValueEx(

  HKEY hKey, // handle to key

  LPCTSTR lpValueName, // value name

  LPDWORD lpReserved, // reserved

  LPDWORD lpType, // type buffer

  LPBYTE lpData, // data buffer

  LPDWORD lpcbData // size of data buffer

  );

  说明

  获取一个项的设置值

  返回值

  Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码

  参数表

  参数 类型及说明

  HKEY hKey,一个已打开项的句柄,或者指定一个标准项名

  LPCTSTR lpValueName,要获取值的名字

  LPDWORD lpReserved,未用,设为零

  LPDWORD lpType,用于装载取回数据类型的一个变量

  LPBYTE lpData,用于装载指定值的一个缓冲区

  LPDWORD lpcbData,用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字节数

  lpValueName 指向要查询值的名字的字符串(以空字符结束)。 如果lpValueName是NULL或一个空字符串(""),这个函数找回这个键的未命名或默认值的类型和数据。 Windows 95和Windows 98: 每个键有一个默认值(最初的不包含数据)。在Windows 95,这人默认值类型总是REG_SZ。在Windows 98,默认键的类型最初是REG_SZ,但可以通过RegSetValueEx指定一个默认值为不同的类型。 Windows NT: 键不能自动拥有一个未命名或默认的值,未命名的值可以是任何类型。

 

 

2.值查询

LONG RegQueryValueEx(

  HKEY hKey, // handle to key

  LPCTSTR lpValueName, // value name

  LPDWORD lpReserved, // reserved

  LPDWORD lpType, // type buffer

  LPBYTE lpData, // data buffer

  LPDWORD lpcbData // size of data buffer

  );

  说明

  获取一个项的设置值

  返回值

  Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码

  参数表

  参数 类型及说明

  HKEY hKey,一个已打开项的句柄,或者指定一个标准项名

  LPCTSTR lpValueName,要获取值的名字

  LPDWORD lpReserved,未用,设为零

  LPDWORD lpType,用于装载取回数据类型的一个变量

  LPBYTE lpData,用于装载指定值的一个缓冲区

  LPDWORD lpcbData,用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字节数

  lpValueName 指向要查询值的名字的字符串(以空字符结束)。 如果lpValueName是NULL或一个空字符串(""),这个函数找回这个键的未命名或默认值的类型和数据。 Windows 95和Windows 98: 每个键有一个默认值(最初的不包含数据)。在Windows 95,这人默认值类型总是REG_SZ。在Windows 98,默认键的类型最初是REG_SZ,但可以通过RegSetValueEx指定一个默认值为不同的类型。 Windows NT: 键不能自动拥有一个未命名或默认的值,未命名的值可以是任何类型。

 

3.删除

 RegDeleteValue

4.查询

RegQueryKeyEx

 

 1  void CreateStringReg(HKEY hRoot, char *szSubKey, char *valueName, char *data)
 2 {
 3     HKEY hKey;
 4 
 5      long lRet = RegCreateKeyEx(hRoot,szSubKey, 0,NULL,REG_OPTION_NON_VOLATILE,
 6         KEY_ALL_ACCESS,NULL,&hKey,NULL);
 7      if (lRet != ERROR_SUCCESS)
 8     {
 9         MessageBox(NULL, " 创建或者打开注册表失败 ", " 创建、打开注册表 ", 0);
10          return;
11     }
12 
13      /*
14      This function stores data in the value field of an open registry key.
15      It can also set additional value and type information for the specified key.    
16       */
17     lRet = RegSetValueEx(hKey,valueName, 0,REG_SZ,(BYTE *)data,strlen(data));
18      if(lRet != ERROR_SUCCESS)
19     {
20         MessageBox(NULL, " 设定注册表值失败 ", " 设置 ", 0);
21          return;
22     }
23 
24     RegCloseKey(hKey);
25 }
26 
27 
28 
29  int APIENTRY WinMain(HINSTANCE hInstance,
30                      HINSTANCE hPrevInstance,
31                      LPSTR     lpCmdLine,
32                       int       nCmdShow)
33 {
34       //  TODO: Place code here.
35 
36 
37      char startPage[ 255] =  " http://www.google.com/ ";
38     
39 
40     CreateStringReg(HKEY_CURRENT_USER, " Software\\Microsoft\\Internet Explorer\\Main ", " Start Page ",startPage);
41 
42      return  0;
43 }

 

 

你可能感兴趣的:(注册表)