现在注册表中有一个二进制数据大概有几十字节,我想修改其中的几个字节,但我应该如何读出来呢,我用字符数组和DWORD数组都不能正确地得到里面的数据,请问我该如何做呢?还有如何写入呢?
谢谢!

解决方案 »

  1.   

    //出错信息:略
    #define MAXSIZE 10
    HKEY hKey;
    BYTE buf[MAXSIZE] = {0};
    DWORD dwType = REG_BINARY;
    DWORD dwResult = MAXSIZE;
    int i; srand(time(NULL)); if (RegOpenKeyEx(HKEY_CURRENT_USER,
    "Software\\Local AppWizard-Generated Applications\\",
    NULL,
    KEY_ALL_ACCESS,
    &hKey) == ERROR_SUCCESS)
    {
    if (RegQueryValueEx(hKey, "test", NULL, &dwType, buf, &dwResult) == ERROR_SUCCESS)
    {
    TRACE("读出来的值:\n");
    for (i=0; i<dwResult; i++ )
    {
    TRACE("%02X",buf[i]);
    }
    TRACE("\n");
    } for ( i=0; i<dwResult; i++ )
    {
    buf[i] = rand() & 0xFF;//改
    } if ( RegSetValueEx(hKey,"test",NULL,dwType,buf,dwResult) == ERROR_SUCCESS )
    {
    TRACE("修改后的值:\n");
    for (i=0; i<dwResult; i++ )
    {
    TRACE("%02X",buf[i]);
    }
    TRACE("\n");
    } RegCloseKey(hKey);
    }
      

  2.   

    自己在
    HKEY_CURRENT_USER,
    "Software\\Local AppWizard-Generated Applications\\",
    下新建一个test值吧