基本介紹
- 中文名:StdRegProv
- 類型:WMI 的名稱空間的一個子類
- 方法數:16個方法
- 作用:驗證用戶的訪問權等
參數,創建,刪除和枚舉,修改和讀取,驗證訪問許可權,
參數
各方法都有的參數 hDefKey
指定含有 sSubKeyName 路徑的根鍵的可選參數。默認值為 HKEY_LOCAL_MACHINE (0x80000002)。以下的常數定義於 Winreg.h:
HKEY_CLASSES_ROOT (0x80000000)
HKEY_CURRENT_USER (0x80000001)
HKEY_LOCAL_MACHINE (0x80000002)
HKEY_USERS (0x80000003)
HKEY_CURRENT_CONFIG (0x80000005)
HKEY_DYN_DATA (0x80000006)
其中,HKEY_DYN_DATA 只是 Windows 95 和 Windows 98 計算機的合理的根鍵。
創建,刪除和枚舉
uint32 CreateKey([in] uint32 hDefKey,[in] string sSubKeyName);
CreateKey 方法在指定的根鍵創建子項
sSubKeyName 包含要創建的項。
CreateKey 方法創建路徑里指定的不存在的所有子項。例如,如果 MyKey 和 MySubKey 不存在於以下路徑里, CreateKey 創建這兩項:
HKEY_LOCAL_MACHINE\SOFTWARE\MyKey\MySubKey
uint32 DeleteKey([in] uint32 hDefKey,[in] string sSubKeyName);
DeleteKey 方法在指定的根鍵里刪除一個子項。
sSubKeyName 包含要刪除的項。
uint32 EnumKey([in] uint32 hDefKey,[in] string sSubKeyName,[out] string sNames);
EnumKey 方法枚舉某路徑的子項。
sSubKeyName 指定包含要枚舉的子項的路徑。
sNames 包含一數組的子項字元串。
uint32 EnumValues([in] uint32 hDefKey,[in] string sSubKeyName,[out] string sNames,[out] sint32 iTypes);
EnumValues 方法枚舉某子項的鍵值。
sSubKeyName 指定包含要被枚舉的鍵值的路徑。
sNames 包含一數組的鍵值名稱的字元串。此數組的元素與 iTypes 的元素直接相對應。
iTypes 包含一數組的數據值類型 (整數)。您可用這些類型來決定調用哪個 Get 方法。例如,如果數據值類型是 REG_SZ,您應調用 GetStringValue 來檢索鍵值的數據。此數組的元素與 sNames 的元素直接相關聯。 以下數據值類型常數定義於 Winnt.h:
REG_SZ (1)
REG_EXPAND_SZ (2)
REG_BINARY (3)
REG_DWORD (4)
REG_MULTI_SZ (7)
uint32 DeleteValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName);
DeleteValue 方法在指定的子項里刪除一個鍵值。
sSubKeyName 指定項,它包含要刪除的鍵值。
sValueName 指定要從子項中刪除的鍵值名。指定一個空的字元串來刪除默認鍵值 (默認鍵值不被刪除,它的數據被設定為 "(數值未設定)"
修改和讀取
uint32 SetDWORDValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[in] uint32 uValue);
SetDWORDValue 方法為數據類型為 REG_DWORD 的鍵值設定數據。
sSubKeyName 指定包含要設定的鍵值的項。
sValueName 指定要設定數據的鍵值名。您可指定一個現有的鍵值 (更新) 或一個新的鍵值 (創建)。指定一個空的字元串來設定默認鍵值的數據。
uValue 指定一個雙字數據。
uint32 GetDWORDValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[out] uint32 uValue);
GetDWORDValue 方法為數據類型為 REG_DWORD 的鍵值返回數據。
sSubKeyName 指定包含鍵值的路徑。
sValueName 指定要檢索數據的鍵值名。指定一個空字元串來得到默認鍵值。
uValue 包含鍵值的 DWORD 數據。
uint32 SetStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[in] string sValue);
SetStringValue 方法為數據類型為 REG_MULTI_SZ 的鍵值設定數值。
sSubKeyName 指定包含要設定的鍵值的項。
sValueName 指定要設定數據的鍵值名。您可指定一個現有的鍵值 (更新) 或一個新的鍵值 (創建)。指定一個空的字元串來設定默認鍵值的數據。
sValue 指定一個字元串數據。
uint32 GetStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[out] string sValue);
GetStringValue 方法為數據類型為 REG_SZ 的鍵值返回數據。
sSubKeyName 指定包含鍵值的路徑。
sValueName 指定要檢索數據的鍵值名。指定一個空字元串來得到默認鍵值。
sValue 包含鍵值的字元串數據。
uint32 SetMultiStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[in] string sValue);
SetMultiStringValue 方法為數據類型為 REG_MULTI_SZ 的鍵值設定數據。如果成功,SetMultiStringValue 方法返回一個 uint32 是 0; 如果出現任何錯誤,則是其他值。
sSubKeyName 指定包含要設定的鍵值的項。
sValueName 指定要設定數據的鍵值名。您可指定一個現有的鍵值 (更新) 或一個新的鍵值 (創建)。指定一個空的字元串來設定默認鍵值的數據。
sValue 指定一個字元串數據的數組。
uint32 GetMultiStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[out] string sValue);
GetMultiStringValue 方法為數據類型為 REG_MULTI_SZ 的鍵值返回數據。如果成功,GetMultiStringValue 方法返回一個 uint32 是 0;如果出現錯誤,則返回其他值。
sSubKeyName 指定包含鍵值的路徑。
sValueName 指定要檢索數據的鍵值名。指定一個空字元串來得到默認鍵值。
sValue 包含鍵值的一個字元串數據數組。
uint32 SetExpandedStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[in] string sValue);
SetExpandedStringValue 方法為數據類型為 REG_EXPAND_SZ 的鍵值設定數據。如果成功,SetExpandedStringValue 方法返回一個 uint32 是 0;如果出現錯誤,則返回其他值。
sSubKeyName 指定包含要設定的鍵值的項。
sValueName 指定要設定數據的鍵值名。您可指定一個現有的鍵值 (更新) 或一個新的鍵值 (創建)。指定一個空的字元串來設定默認鍵值的數據。
sValue 指定一個擴展的字元串數據。字元串里指定的環境變數必須存在,這樣當您調用 GetExpandedStringValue 時,字元串才能被擴展。
uint32 GetExpandedStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[out] string sValue);
GetExpandedStringValue 方法為數據類型為 REG_EXPAND_SZ 的鍵值返回數據。
sSubKeyName 指定包含鍵值的路徑。
sValueName 指定要檢索數據的鍵值名。指定一個空字元串來得到默認鍵值。
sValue 包含擴展的鍵值的字元串數據。只有當環境變數 (例如, %Path%) 被定義,字元串方能得以擴展。
uint32 SetBinaryValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[in] uint8 uValue);
SetBinaryValue 方法為數據類型為 REG_BINARY 的鍵值設定數據。如果成功,The SetBinaryValue 方法返回一個 uint32 是 0;如果出現錯誤,則返回其他值。
sSubKeyName 指定包含要設定的鍵值的項。
sValueName 指定要設定數據的鍵值名。您可指定一個現有的鍵值 (更新) 或一個新的鍵值 (創建)。指定一個空的字元串來設定默認鍵值的數據。
uValue 指定一個二進制數據數組。
uint32 GetBinaryValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[out] uint8 uValue);
GetBinaryValue 方法為數據類型為 REG_BINARY 的鍵值返回數據。如果成功,The GetBinaryValue 方法返回一個 uint32 是 0;如果出現錯誤,則返回其他值。
sSubKeyName 指定包含鍵值的路徑。
sValueName 指定要檢索數據的鍵值名。指定一個空字元串來得到默認鍵值。
uValue 包含一個二進制位元組數組。
驗證訪問許可權
uint32 CheckAccess([in] uint32 hDefKey,[in] string sSubKeyName,[in] uint32 uRequired,[out] boolean bGranted);
CheckAccess 方法驗證用戶擁有指定的許可權。如果成功,該方法返回一個 uint32 是 0;如果出現錯誤,則返回其他值。
sSubKeyName 包含要驗證訪問許可權的子項。
uRequired 指定要驗證的訪問許可權可選參數。您可將這些值加在一起來驗證多個訪問許可權。默認值為 3。以下訪問許可權值被定義於 Winnt.h:
KEY_QUERY_VALUE (0x0001)
KEY_SET_VALUE (0x0002)
KEY_CREATE_SUB_KEY (0x0004)
KEY_ENUMERATE_SUB_KEYS (0x0008)
KEY_NOTIFY (0x0010)
KEY_CREATE_LINK (0x0020)
DELETE (0x00010000)
READ_CONTROL (0x00020000)
WRITE_DAC (0x00040000)
WRITE_OWNER (0x00080000)
bGranted
如果用戶擁有指定的訪問許可權,這個參數為 True。否則,參數為 False.