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 }
原文地址:https://www.cnblogs.com/cody1988/p/2502351.html