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聲明
Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As 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

操作實例

備份操作員組中的用戶可能無法在"還原檔案和目錄"即使使用 REG_OPTION_BACKUP_RESTORE 標誌 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
入參,標識子鍵名稱。該參數不能為空。參數中不能存在(\)
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的直接子鍵。

相關詞條

熱門詞條

聯絡我們