对不起,说错了,应该是RegSetValueEx()函数来写注册表,有没有人来看一下。

解决方案 »

  1.   

     读取键RegQueryValueEx
      通过RegQueryValueEx函数可以从一个已经打开的键中读取数据,函数原型如下:
      LONG RegQueryValueEx(
      HKEY hKey,
      LPTSTR lpValueName,
      LPDWORD lpReserved,
      LPDWORD lpType,
      LPBYTE lpData,
      LPDWORD lpcbData
      );
      各个参数及返回值的含义如下:
      ·参数hKey为当前的一个打开的键的句柄,具体数值同RegCreateKeyEx函数的hKey参数。
      ·参数lpVauleName为一个指向非空的包含查询值的名称的字符串指针。
      ·lpReserved保留,必须为NULL。
      ·参数lpType为一个指向数据类型的指针,数据类型为下列类型之一:
      REG_BINARY 二进制数据
      REG_DWORD 32位整数
      REG_DWORD_LITTLE_ENDIAN little-endian格式的数据,例如0X12345678以(0X78 0X56 0X34 0X12)方式保存
      REG_DWORD_BIG_ENDIAN big-endian格式的数据,例如0X12345678以(0X12 0X34 0X56 0X78)方式保存
      REG_EXPAND_SZ 一个包含未扩展环境变量的字符串
      REG_LINK 一个Unicode类型的链接
      REG_MULIT_SZ 以两个零结尾的字符串
      REG_NONE 无类型数值
      REG_RESOURCE_LIST 设备驱动资源列表
      REG_SZ 一个以零结尾的字符串根据函数使用的字符集类型的不同而设置为Unicode或ANSI类型的字符串
      ·参数lpData为一个指向保存返回值的变量的指针。如果不需要返回值,该参数可以为NULL。
      ·参数lpcbData为一个指向保存返回值长度的变量的指针。其中长度以字节为单位。如果数据类型为REG_SZ、REG_MULTI_SZ或REG_EXPAND_SZ,那么长度也包括结尾的零字符,只有在参数lpData为NULL时,参数lpcbData才可以为NULL。
      ·返回值同RegCreateKeyEx函数的返回值。
     设置键值RegSetValueEx
      RegSetValueEx函数可以设置注册表中键的值,函数原型如下:
      LONG RegSetValueEx(
      HKEY hKey,
      LPCTSTR lpValueName,
      DWORD Reserved,
      DWORD dwType,
      CONST BYTE *lpData,
      DWORD cbData
      );
      各个参数及返回值的含义如下:
      ·参数hKey的含义同RegCreateKeyEx函数中的hKey参数。
      ·参数lpValueName为一个指向包含值名的字符串指针。
      ·Reserved保留,通常必须设置为0。
      ·参数dwType确定了设置的值的类型同RegQueryValueKeyEx的lyType参数。
      ·参数lpData为一个指向包含数据的缓冲区的指针。
      ·参数cbData以字节为单位,指定数据的长度。
      ·返回值同RegCreateKeyEx函数的返回值。
      
      

  2.   

    送你一个函数,你可以自己再改一下
    void CreateSetRegKeyValue(CString strKeyValue,long intKeyValue)
    {
    DWORD dwErrorCode,dwData;
    HKEY hKey;
        DWORD dwDisposition;
    dwErrorCode=::RegCreateKeyEx(HKEY_CURRENT_USER,strKeyValue.GetBuffer(strKeyValue.GetLength()),0,"",REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dwDisposition);
    if (dwErrorCode != ERROR_SUCCESS){
    AfxMessageBox("Create Key Faile!");
    }
    dwData=intKeyValue;
    dwErrorCode=::RegSetValueEx(HKEY_CURRENT_USER,strKeyValue.GetBuffer(strKeyValue.GetLength()),0,REG_DWORD,(LPBYTE)&dwData,sizeof(DWORD));
    if (dwErrorCode != ERROR_SUCCESS){
    AfxMessageBox("Set KeyValue Faile!");
    }
    RegCloseKey(hKey);
    }