81.レジストリのキーを作成する。

< 使用用途 >
レジストリのキーを作成する

今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=> ダウンロード ・・・下記のサンプルと同じです。 


 < 説明 >
API関数の RegCreateKeyEx  を使用します
RegCreateKeyEx =>レジストリのキーを作成または既存のキーを開く
  <引数>
     'hKey:Rootキー名
     'lpSubKey:サブキー名
     'Reserved:常に0
     'lpClass:0
     'dwOptions:定数(REG_参照)
     'samDesired:定数(KEY_参照)
     'lpSecurityAttributes:SECURITY_ATTRIBUTES構造体
     'phkResult:オープンされたキーのハンドルを格納する変数
     'lpdwDisposition:処理結果を受け取る変数
     ' (REG_CREATED_NEW_KEY か REG_OPENED_EXISTING_KEYが入る)
  @戻り値@
     正常終了のとき ERROR_SUCCESS       


< SAMPLE >
’ここではHKEY_CURRENT_USER\SoftWareの下にPAPYというキーを作成
'標準モジュール
Public 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

Public Declare Function RegCloseKey Lib "ADVAPI32" (ByVal hKey As Long) As Long

Public Type SECURITY_ATTRIBUTES
 nLength As Long
 lpSecurityDescriptor As Long
 bInheritHandle As Long
End Type

Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_DYN_DATA = &H80000006
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const HKEY_USERS = &H80000003

Public Const KEY_CREATE_SUB_KEY = &H4 'サブキーを作成
Public Const REG_OPTION_NON_VOLATILE = 0
Public Const ERROR_SUCCESS = 0

Public Const REG_CREATED_NEW_KEY = &H1 'キーを新規作成
Public Const REG_OPENED_EXISTING_KEY = &H2 '既存キーをオープンする


'ここからはフォーム内の処理です
Private Sub Command1_Click()
   Dim SA As SECURITY_ATTRIBUTES
   Dim Result As Long
   Dim Disposition As Long
   Dim Ret As Long
   Dim Rootkey As String
  Dim Subkey As Long

  Rootkey = HKEY_CURRENT_USER
  Subkey="SoftWare\PAPY"

  'キーを作成
  Ret = RegCreateKeyEx(Rootkey, Subkey, 0, "", _
      REG_OPTION_NON_VOLATILE, KEY_CREATE_SUB_KEY, _
       SA, Result, Disposition)

  'キーを閉じる
  Call RegCloseKey(Result)

   Select Case Disposition

   Case REG_CREATED_NEW_KEY

       MsgBox "正常に作成しました"

   Case REG_OPENED_EXISTING_KEY

       MsgBox "同じキーが存在するので作成できませんでした"

   End Select
End Sub





API 技術関連のページへ戻る

ホーム PV ランキング