zoukankan      html  css  js  c++  java
  • c++读取REG_MULTI_SZ类型注册表

    First: run RegQueryValueEx to get type and necessary memory size:

    Single byte code:

     1 DWORD type, size;
     2 vector<string> target;
     3 if ( RegQueryValueExA(
     4     your_key, // HKEY
     5     TEXT("ValueName"),
     6     NULL,
     7     &type,
     8     NULL,
     9     &size ) != ERROR_SUCCESS )
    10   return;
    11 if ( type == REG_MULTI_SZ )
    12 {
    13   vector<char> temp(size);
    14 
    15   if ( RegQueryValueExA(
    16       your_key, // HKEY
    17       TEXT("ValueName"),
    18       NULL,
    19       NULL,
    20       reinterpret_cast<LPBYTE>(&temp[0]),
    21       &size ) != ERROR_SUCCESS )
    22   return;
    23 
    24   size_t index = 0;
    25   size_t len = strlen( &temp[0] );
    26   while ( len > 0 )
    27   {
    28     target.push_back(&temp[index]);
    29     index += len + 1;
    30     len = strlen( &temp[index] );
    31   }
    32 }

    Unicode:

     1 DWORD type, size;
     2 vector<wstring> target;
     3 if ( RegQueryValueExW(
     4     your_key, // HKEY
     5     TEXT("ValueName"),
     6     NULL,
     7     &type,
     8     NULL,
     9     &size ) != ERROR_SUCCESS )
    10   return;
    11 if ( type == REG_MULTI_SZ )
    12 {
    13   vector<wchar_t> temp(size/sizeof(wchar_t));
    14 
    15   if ( RegQueryValueExW(
    16       your_key, // HKEY
    17       TEXT("ValueName"),
    18       NULL,
    19       NULL,
    20       reinterpret_cast<LPBYTE>(&temp[0]),
    21       &size ) != ERROR_SUCCESS )
    22   return;
    23 
    24   size_t index = 0;
    25   size_t len = wcslen( &temp[0] );
    26   while ( len > 0 )
    27   {
    28     target.push_back(&temp[index]);
    29     index += len + 1;
    30     len = wcslen( &temp[index] );
    31   }
    32 }
  • 相关阅读:
    软件项目“免坑”指南
    软件项目质量保证——编码规范
    从Web借鉴UI设计
    C#学习笔记——面向对象、面向组件以及类型基础
    关系数据库设计
    Winform开发框架之插件化应用框架实现
    桌面程序界面设计分享
    2-Bom
    1-简介
    测试
  • 原文地址:https://www.cnblogs.com/davygeek/p/5286193.html
Copyright © 2011-2022 走看看