指定したレジストリキーを作成します。キーが既に存在しているときはオープンします。
定義
Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" _
(hKey As HKEY, _
lpSubKey As String, _
Reserved As DWord, _
lpClass As String, _
dwOptions As DWord, _
samDesired As Long, _
ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, _
ByRef phkResult As HKEY, _
lpdwDisposition As DWordPtr) As Long
hKey
既存のキーのハンドルを指定します。以下の定義済みハンドルから指定することもできます。
ハンドル | 説明 |
HKEY_CLASSES_ROOT | 拡張子に関する情報、Windowsにインストールされているコンポーネントに関する情報などが格納されています。 |
HKEY_CURRENT_USER | 現在のユーザーが使用するためのOS、アプリケーションに関する情報などが格納されています。 |
HKEY_LOCAL_MACHINE | コンピュータ固有の情報などが格納されています。 |
HKEY_USERS | すべてのユーザーに関する情報などが格納されています。 |
lpSubKey
hKey パラメータで指定したキーを親とするサブキーの名前が入った文字列を指定します。
Reserved
予約されています。0 を指定して下さい。
lpClass
作成するキーのクラス(オブジェクトの種類)の名前が格納された文字列を指定します。キーが既に存在しているときは無視されます。不要なときは、NULL を指定することができます。
dwOptions
作成するキーに関する特殊オプションを、以下の定数から指定します。
定数 | 説明 |
REG_OPTION_NON_VOLATILE | 不揮発性のキーを作成します。キーはファイルに保存され、システムを再起動しても情報は失われません(デフォルト)。 |
REG_OPTION_VOLATILE | 揮発性のキーを作成します。キーはメモリに保存され、システムを再起動すると、情報が失われます(WindowsNT系OSのみ)。 |
REG_OPTION_BACKUP_RESTORE | 呼び出し側のスレッドが SE_BACKUP_NAME 特権を持っている場合、このキーは、ACCESS_SYSTEM_SECURITY アクセスと KEY_READ アクセスでオープンされます。呼び出し側のスレッドが SE_RESTORE_NAME 特権を持っている場合、このキーは、ACCESS_SYSTEM_SECURITY アクセスと KEY_WRITE アクセスでオープンされます。両方の特権を持っている場合、両方の特権が組み合わさります。この値を指定すると、samDesired パラメータが無視されます(WindowsNT系OSのみ)。 |
samDesired
セキュリティ マスクを、以下の定数を組み合わせて指定します。
定数 | 説明 |
KEY_ALL_ACCESS | KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY、KEY_CREATE_SUB_KEY、KEY_CREATE_LINK、KEY_SET_VALUE の組み合わせです。 |
KEY_CREATE_LINK | シンボリックリンクの作成を許可します。 |
KEY_CREATE_SUB_KEY | サブキーの作成を許可します。 |
KEY_ENUMERATE_SUB_KEYS | サブキーの列挙を許可します。 |
KEY_EXECUTE 、または KEY_READ | KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY の組み合わせです。読み取りアクセスを許可します。 |
KEY_NOTIFY | 変更の通知を許可します。 |
KEY_QUERY_VALUE | サブキーデータの問い合わせを許可します。 |
KEY_SET_VALUE | サブキーデータの設定を許可します。 |
KEY_WRITE | KEY_SET_VALUE、KEY_CREATE_SUB_KEY の組み合わせです。 |
lpSecurityAttributes (ポインタ参照)
SECURITY_ATTRIBUTES 型の構造体変数を指定すると、ハンドルの子プロセスへの継承許可を設定することができます。NULL を指定するとハンドルは継承されません。
phkResult (ポインタ参照)
32 ビット整数型変数へのポインタを指定します。この変数に作成、またはオープンしたキーのハンドルが格納されます。
lpdwDisposition
32 ビット整数型変数へのポインタを指定します。この変数には、関数の処理結果が格納されます。処理結果は以下の定数のいずれかです。不要なときは、NULL を指定することができます。
定数 | 説明 |
REG_CREATED_NEW_KEY | キーが存在していなかったため、新たに作成しました。 |
REG_OPENED_EXISTING_KEY | キーが既に存在していたため、オープンしました。 |
戻り値
関数が成功すると、ERROR_SUCCESS が返ります。失敗すると、0 以外の値のエラーコードが返ります。
解説
phkResult パラメータに格納されたキーが不要になったら、RegCloseKey関数を使用してキーを閉じて下さい。
環境情報
インクルード ファイル: api_reg.sbp 内で定義済み
DLLファイル: advapi32.dll
RegCloseKey関数、RegDeleteKey関数、RegDeleteValue関数、RegOpenKeyEx関数、RegQueryValueEx関数、RegSetValueEx関数