在我的注册表中HKEY_CURRENT_USER\wakao\wakao中有一个REG_SZ的名为kao的键值为123123
我现在想把kao中的值改了.用了以下的原程序为什么写不进啊!!原程序:
#include <windows.h>
#include <stdio.h>
#define INFO_BUFFER_SIZE 256
void  main()
{
TCHAR buf[INFO_BUFFER_SIZE];
DWORD length = INFO_BUFFER_SIZE;
memset(buf, 0, sizeof(buf)/sizeof(TCHAR));
int iret;
HKEY hKey;
if(RegOpenKeyEx(HKEY_CURRENT_USER,"wakao\\wakao",0,KEY_QUERY_VALUE,&hKey)!=ERROR_SUCCESS)
printf("error!");
iret = RegQueryValueEx(hKey,"kao",0,NULL,(LPBYTE)buf,&length);
TCHAR my[] = "wakao";
if(RegSetValueEx(hKey,"kao",0,REG_SZ,(LPBYTE)my,sizeof(my))!=ERROR_SUCCESS)
{
iret=GetLastError();
printf("errorcode:%d\n",iret);
}为什么RegSetValueEx()!=ERROR_SUCCESS 但是还会说errorcode 为0 啊!!
要怎么样才能修改kao 中的键值

解决方案 »

  1.   

    LPCTSTR pszKey, LPCTSTR pszData
    LONG ReturnValue = RegSetValueEx (hKey, pszKey, 0L, REG_SZ,
    (CONST BYTE*) pszData, strlen(pszData) + 1
      

  2.   

    char my[] = "wakao";
    if(RegSetValueEx(hKey,"kao",0,REG..........
      

  3.   

    抑郁!!你们怎么没有一个说得对啊..终于知道了..我出错的errorcode:是5
    查了一下MSDN,是拒绝访问啊..所以只要在
    RegOpenKeyEx(HKEY_CURRENT_USER,"wakao\\wakao",0,KEY_QUERY_VALUE,&hKey)
    中多加一个KEY_WRITE就行了...呵呵..不过还是谢谢各位哦!