RegCreateKeyEx
计算机用语
RegCreateKeyEx,是计算机用语,用于创建指定的注册键。
简介
RegCreateKeyEx(Windows),
Creates the specified registry key. If the key already exists, the function opens it. Note that key names are not case sensitive.(创建指定的注册键。如果这个键已经存在,这个函数会打开它。注意:键的名字大小写不敏感。)
To perform transacted registry operations on a key, call the RegCreateKeyTransacted function.
Applications that back up or restore system state including system files and registry hives should use the Volume Shadow Copy Service instead of the registry functions.
VB声明
SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
说明
在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数。如指定的项已经存在,则函数会打开现有的项
返回值
Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
参数表
LONG WINAPI RegCreateKeyEx(__in HKEY hKey,__in LPCTSTR lpSubKey,DWORD Reserved,__in LPTSTR lpClass,__in DWORD dwOptions,__in REGSAM samDesired,__in LPSECURITY_ATTRIBUTES lpSecurityAttributes,__out PHKEY phkResult,__out LPDWORD lpdwDisposition);
参数 类型及说明
hKey Long,一个打开项的句柄,或者一个标准项名
lpSubKey String,欲创建的新子项的名字
Reserved Long,设为零
lpClass String,项的类名
dwOptions Long,下述常数为零:REG_OPTION_VOLATILE——这个项不正式保存下来,系统重新启动后会消失
samDesired Long,带有前缀KEY_??的一个或多个常数。它们组合起来描述了允许对这个项进行哪些操作
lpSecurityAttributes SECURITY_ATTRIBUTES,对这个项的安全特性进行描述的一个结构(用ByVal As Long传递空值)。不适用于windows 95
phkResult Long,指定用于装载新子项句柄的一个变量
lpdwDisposition Long,用于装载下列某个常数的一个变量:
REG_CREATED_NEW_KEY——新建的一个子项
REG_OPENED_EXISTING_KEY——打开一个现有的项
注解
REG_OPTION_VOLATILE不适用于windows 95
操作实例
RegCreateKeyEx 函数创建一个密钥 (SE_RESTORE_NAME) 特权授予权限,并启用。
原因
如果已启用 SE_RESTORE_NAME 特权,并且父项通过使用 REG_OPTION_BACKUP_RESTORE 标志打开包括 KEY_CREATE_SUB_KEY 访问的 KEY_WRITE 访问以打开父项。 但是,操作系统中的错误防止父项正在打开 KEY_CREATE_SUB_KEY 访问除非用户明确具有 KEY_CREATE_SUB_KEY 向该父项的访问权限。如此一来创建该子键调用将失败,错误代码 5 (ERROR_ACCESS_DENIED)。
状态
Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中的错误。
VC声明
RegCreateKeyEx
该函数用来创建注册表键,如果该键已经存在,则打开它(注册表键不区分大小写)
LONG RegCreateKeyEx(HKEY hKey,LPCTSTR lpSubKey,DWORD Reserved,LPTSTR lpClass,DWORD dwOptions,REGSAM samDesired,LPSECURITY_ATTRIBUTES lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition);
参数:
hKey
入参,一个打开键的句柄。调用该函数的进程必须拥有KEY_CREATE_SUB_KEY的权力。该句柄可以是RegCreateKeyEx或者RegOpenKeyEx的返回值,也可以是以下预定义的值
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
lpSubKey
入参,标识子键名称。该参数不能为空。参数中不能存在(\uff09
Reserved
保留值,必须为0
lpClass
入参,指向一个字符串,该字符串定义了该键的类型。可以为空。该参数可以在操作本地和远程注册表时使用
dwOptions
入参,该参数可以是以下值
REG_OPTION_BACKUP_RESTORE,0x00000004L
REG_OPTION_NON_VOLATILE,0x00000000L ,一般使用该值
REG_OPTION_VOLATILE,0x00000001L
samDesired
入参,定义访问权限
lpSecurityAttributes
入参,定义返回的句柄是否可以被子进程继承,为NULL时不能继承。
phkResult
出参,保存返回的句柄
lpdwDisposition
出参,可以是以下值。如果为空,则不返回。
REG_CREATED_NEW_KEY,0x00000001L 该键是新创建的键
REG_OPENED_EXISTING_KEY,0x00000002L 该键是已经存在的键
Return Values
成功则返回 ERROR_SUCCESS.
Remarks
该函数创建的键没有键值。应用程序不能创建HKEY_USERS 或者 HKEY_LOCAL_MACHINE的直接子键。
参考资料
RegCreateKeyEx.微软官网.2015-05-09
最新修订时间:2024-03-30 13:27
目录
概述
简介
参考资料