NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
registry_key类 参考

系统注册表项类 更多...

#include <registry.hpp>

struct  root_key
 系统注册表根键常量 更多...
struct  value_info
 系统注册表值信息结构 更多...

Public 类型

enum class  value_type : ::DWORD {
  none = REG_NONE , string = REG_SZ , expand_string = REG_EXPAND_SZ , binary = REG_BINARY ,
  dword = REG_DWORD , qword = REG_QWORD , multi_string = REG_MULTI_SZ
}
 系统注册表值类型枚举 更多...

Public 成员函数

 registry_key ()=default
 默认构造函数
 registry_key (::HKEY key)
 从原生句柄构造注册表项
 ~registry_key ()
 析构函数
 registry_key (registry_key &&other) noexcept
 移动构造函数
registry_keyoperator= (registry_key &&other) noexcept
 移动赋值运算符
bool is_valid () const noexcept
 检查注册表项是否有效
 operator bool () const noexcept
 布尔转换运算符
void create_sub_key (const wstring &name)
 创建子项
void open (::HKEY root, const wstring &path, ::REGSAM sam_desired=KEY_READ|KEY_WRITE)
 打开注册表项
registry_key open_sub_key (const wstring &name, REGSAM sam_desired=KEY_READ) const
 打开子项
void delete_sub_key (const wstring &name)
 删除子项
void delete_value (const wstring &name)
 删除值
bool has_sub_key (const wstring &name) const
 检查是否存在指定的子项
bool has_value (const wstring &name) const
 检查是否存在指定的值
vector< wstringenum_sub_key_names () const
 枚举所有子项名称
vector< value_infoenum_values () const
 枚举所有值
void set_string_value (const wstring &name, const wstring &value)
 设置字符串值
void set_expand_string_value (const wstring &name, const wstring &value)
 设置可扩展字符串值
void set_dword_value (const wstring &name, ::DWORD value)
 设置32位整数值
void set_qword_value (const wstring &name, ::ULONGLONG value)
 设置64位整数值
void set_binary_value (const wstring &name, const ::BYTE *data, ::DWORD size)
 设置二进制值
void set_multi_string_value (const wstring &name, const vector< wstring > &values)
 设置多字符串值
wstring get_string_value (const wstring &name, const wstring &default_val=L"") const
 获取字符串值
::DWORD get_dword_value (const wstring &name, DWORD default_val=0) const noexcept
 获取32位整数值
::ULONGLONG get_qword_value (const wstring &name, ULONGLONG default_val=0) const noexcept
 获取64位整数值
vector< byte_tget_binary_value (const wstring &name) const
 获取二进制值
vector< wstringget_multi_string_value (const wstring &name) const
 获取多字符串值
::HKEY native_handle () const noexcept
 获取原生注册表句柄

静态 Public 成员函数

static void delete_key_tree (::HKEY root, const wstring &path)
 递归删除注册表项树

详细描述

系统注册表项类

系统注册表项的打开、创建、读写和枚举操作。

在文件 system/registry.hpp62 行定义.

成员枚举类型说明

◆ value_type

enum class registry_key::value_type : ::DWORD
strong

系统注册表值类型枚举

定义系统注册表支持的值类型。

枚举值
none 

无类型

string 

字符串类型

expand_string 

可扩展字符串

binary 

二进制数据

dword 

32位无符号整数

qword 

64位无符号整数

multi_string 

多字符串类型

在文件 system/registry.hpp106 行定义.

构造及析构函数说明

◆ registry_key() [1/3]

registry_key::registry_key ( )
default

默认构造函数

构造一个无效的注册表项对象。

引用了 registry_key().

被这些函数引用 open_sub_key(), operator=(), registry_key(), registry_key(), registry_key() , 以及 ~registry_key().

◆ registry_key() [2/3]

registry_key::registry_key ( ::HKEY key)
explicit

从原生句柄构造注册表项

参数
key原生注册表句柄

构造对象接管句柄的所有权,析构时自动关闭句柄。

引用了 registry_key().

◆ ~registry_key()

registry_key::~registry_key ( )

析构函数

自动关闭注册表句柄。

引用了 registry_key().

◆ registry_key() [3/3]

registry_key::registry_key ( registry_key && other)
noexcept

移动构造函数

参数
other源对象

引用了 registry_key().

成员函数说明

◆ create_sub_key()

void registry_key::create_sub_key ( const wstring & name)

创建子项

参数
name子项名称
异常
registry_key_exception当创建失败时抛出

在当前项下创建指定的子项。如果子项已存在,则直接打开。

引用了 name().

◆ delete_key_tree()

void registry_key::delete_key_tree ( ::HKEY root,
const wstring & path )
static

递归删除注册表项树

参数
root根键
path完整路径

递归删除指定路径下的所有子项和值。

◆ delete_sub_key()

void registry_key::delete_sub_key ( const wstring & name)

删除子项

参数
name子项名称
异常
registry_key_exception当删除失败时抛出
注解
子项必须为空,否则删除失败。如需删除包含子项的项,请使用delete_key_tree。

引用了 name().

◆ delete_value()

void registry_key::delete_value ( const wstring & name)

删除值

参数
name值名称
异常
registry_key_exception当值不存在或删除失败时抛出

引用了 name().

◆ enum_sub_key_names()

vector< wstring > registry_key::enum_sub_key_names ( ) const
nodiscard

枚举所有子项名称

返回
子项名称的字符串向量
异常
registry_key_exception当枚举失败时抛出

◆ enum_values()

vector< value_info > registry_key::enum_values ( ) const
nodiscard

枚举所有值

返回
值信息结构的向量
异常
registry_key_exception当枚举失败时抛出

◆ get_binary_value()

vector< byte_t > registry_key::get_binary_value ( const wstring & name) const
nodiscard

获取二进制值

参数
name值名称
返回
二进制数据向量
异常
registry_key_exception当值不存在或类型不是REG_BINARY时抛出

引用了 get_binary_value() , 以及 name().

被这些函数引用 get_binary_value().

◆ get_dword_value()

::DWORD registry_key::get_dword_value ( const wstring & name,
DWORD default_val = 0 ) const
nodiscardnoexcept

获取32位整数值

参数
name值名称
default_val默认值(当值不存在时返回)
返回
DWORD值

引用了 name().

◆ get_multi_string_value()

vector< wstring > registry_key::get_multi_string_value ( const wstring & name) const
nodiscard

获取多字符串值

参数
name值名称
返回
字符串向量
异常
registry_key_exception当值不存在或类型不是REG_MULTI_SZ时抛出

引用了 get_multi_string_value() , 以及 name().

被这些函数引用 get_multi_string_value().

◆ get_qword_value()

::ULONGLONG registry_key::get_qword_value ( const wstring & name,
ULONGLONG default_val = 0 ) const
nodiscardnoexcept

获取64位整数值

参数
name值名称
default_val默认值(当值不存在时返回)
返回
QWORD值

引用了 get_qword_value() , 以及 name().

被这些函数引用 get_qword_value().

◆ get_string_value()

wstring registry_key::get_string_value ( const wstring & name,
const wstring & default_val = L"" ) const
nodiscard

获取字符串值

参数
name值名称
default_val默认值(当值不存在时返回)
返回
字符串值
异常
registry_key_exception当值类型不是字符串类型时抛出

引用了 name().

◆ has_sub_key()

bool registry_key::has_sub_key ( const wstring & name) const
nodiscard

检查是否存在指定的子项

参数
name子项名称
返回
存在返回true,否则返回false

引用了 name().

◆ has_value()

bool registry_key::has_value ( const wstring & name) const
nodiscard

检查是否存在指定的值

参数
name值名称
返回
存在返回true,否则返回false

引用了 name().

◆ is_valid()

bool registry_key::is_valid ( ) const
inlinenodiscardnoexcept

检查注册表项是否有效

返回
有效返回true,否则返回false

在文件 system/registry.hpp203 行定义.

引用了 is_valid().

被这些函数引用 is_valid() , 以及 operator bool().

◆ native_handle()

::HKEY registry_key::native_handle ( ) const
inlinenodiscardnoexcept

获取原生注册表句柄

返回
HKEY句柄

在文件 system/registry.hpp389 行定义.

引用了 native_handle().

被这些函数引用 native_handle().

◆ open()

void registry_key::open ( ::HKEY root,
const wstring & path,
::REGSAM sam_desired = KEY_READ|KEY_WRITE )

打开注册表项

参数
root根键
path完整路径
sam_desired访问权限,默认为读写
异常
registry_key_exception当打开失败时抛出

打开指定的注册表路径,替换当前对象的内容。原有句柄将被关闭。

◆ open_sub_key()

registry_key registry_key::open_sub_key ( const wstring & name,
REGSAM sam_desired = KEY_READ ) const
nodiscard

打开子项

参数
name子项名称
sam_desired访问权限,默认为只读
返回
子项对应的registry_key对象
异常
registry_key_exception当子项不存在或打开失败时抛出

引用了 name() , 以及 registry_key().

◆ operator bool()

registry_key::operator bool ( ) const
inlineexplicitnoexcept

布尔转换运算符

返回
有效返回true,否则返回false

在文件 system/registry.hpp209 行定义.

引用了 is_valid().

◆ operator=()

registry_key & registry_key::operator= ( registry_key && other)
noexcept

移动赋值运算符

参数
other源对象
返回
自身引用

引用了 registry_key().

◆ set_binary_value()

void registry_key::set_binary_value ( const wstring & name,
const ::BYTE * data,
::DWORD size )

设置二进制值

参数
name值名称
data二进制数据指针
size数据大小(字节)
异常
registry_key_exception当写入失败时抛出

引用了 data(), name() , 以及 size().

◆ set_dword_value()

void registry_key::set_dword_value ( const wstring & name,
::DWORD value )

设置32位整数值

参数
name值名称
valueDWORD值
异常
registry_key_exception当写入失败时抛出

引用了 name().

◆ set_expand_string_value()

void registry_key::set_expand_string_value ( const wstring & name,
const wstring & value )

设置可扩展字符串值

参数
name值名称
value可扩展字符串
异常
registry_key_exception当写入失败时抛出

引用了 name().

◆ set_multi_string_value()

void registry_key::set_multi_string_value ( const wstring & name,
const vector< wstring > & values )

设置多字符串值

参数
name值名称
values字符串向量
异常
registry_key_exception当写入失败时抛出

多字符串值是以空字符分隔、双空字符结尾的字符串列表。

引用了 name().

◆ set_qword_value()

void registry_key::set_qword_value ( const wstring & name,
::ULONGLONG value )

设置64位整数值

参数
name值名称
valueQWORD值
异常
registry_key_exception当写入失败时抛出

引用了 name().

◆ set_string_value()

void registry_key::set_string_value ( const wstring & name,
const wstring & value )

设置字符串值

参数
name值名称
value字符串值
异常
registry_key_exception当写入失败时抛出

引用了 name().


该类的文档由以下文件生成: