指定のキーを作成する、キーが存在する場合はそのキーをオープンする
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
Declare Function RegCreateKeyEx Lib "ADVAPI32.dll" alias "RegCreateKeyExA" _
(ByVal hKey As Integer, ByVal lpSubKey As String, ByVal Reserved As Integer, _
ByVal lpClass As String, ByVal dwOptions As Integer, _
ByVal samDesired As Integer, lpSecurityAttributes As SECURITY_ATTRIBUTES, _
phkResult As Integer, lpdwDisposition As Integer) As Integer
LONG RegCreateKeyEx(
HKEY hKey,
LPCTSTR lpSubKey,
DWORD Reserved,
LPTSTR lpClass,
DWORD dwOptions,
REGSAM samDesired,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
PHKEY phkResult,
LPDWORD lpdwDisposition
);
引数
hKey
オープンするキーlpSubKey
HKEY_CLASS_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_DYN_DATA
HKEY_LOCAL_MACHINE
HKEY_USERS
作成 or オープンするサブキー名Reserved
常に0lpClass
クラス(オブジェクトタイプ)を指定する文字列dwOptions
(使わないときvbNullString)
オプション設定を指定する定数samDesired
動作方法を指定する定数lpSecurityAttributes
セキュリティ属性を設定するSECURITY_ATTRIBUTES構造体phkResult
設定しないときは ByVal lpSecurityAttributes As Longと
宣言して0を設定する
(戻り値)新規作成 or オープンされたキーのIDを受け取る長整数変数lpdwDisposition
(戻り値)処理の結果を受け取る長整数変数戻り値
正常終了のとき ERROR_SUCCESS(=0)備考
エラーのとき 0以外
この関数を使用して作成したキーには何も設定されない。サンプル
値を設定する場合にはRegSetValueEx()関数を使用する。
キーを新規作成して戻り値がREG_CREATED_NEW_KEYのとき
作成したキーは一時的にロックされ、別のプロセスが
同じキーを作成しようとするとREG_OPENED_EXISTINGが戻る。
ダウンロード(RegCreateKeyEx.lzh 2.79KB)REG_OPTION_NON_VOLATILE = 0 設定内容をレジストリファイルに保存するsamDesiredの定数
REG_OPTIONS_VOLATILE = 1 (この定数はWindows9x系では無効)
REG_OPTIONS_BACKUP_RESTORE = 4 (同上)
lpdwDispositionの定数
KEY_CREATE_SUB_KEY = &H4 サブキーを作成する
KEY_ENUMERATE_SUB_KEYS = &H8 サブキーをリストアップする
KEY_EXEBUTE = ((KEY_READ) And (Not SYNCHRONIZE))
KEY_NOTIFY = &H10 レジストリの内容変更通知を要求する
KEY_QUERY_VALUE = &H1 レジストリの値を取得する
KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or _
KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And _
(Not SYNCHRONIZE))
KEY_SET_VALUE = &H2 レジストリの値を設定する
KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or _
KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or _
KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or _
KEY_ENUMRATE_SUB_KEYS Or KEY_NOTIFY Or _
KEY_CREATE_LINK) And (Not SYNCHRONIZE))
REG_CREATED_NEW_KEY = &H1 キーを新規作成
REG_OPENED_EXISTING_KEY = &H2 既存キーをオープンする