<Return[R]><Top>

RegReplaceKey

Declare Function Api_RegReplaceKey& Lib "advapi32" Alias "RegReplaceKeyA" (ByVal hKey&, ByVal lpSubKey$, ByVal lpNewFile$, ByVal lpOldFile$)

Declare Function RegReplaceKey Lib "advapi32" Alias "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpNewFile As String, ByVal lpOldFile As String) As Long

指定されたレジストリキーとそのすべてのサブキーの裏付けとなっている 1 つのファイルを、他のファイルへ置き換える。システムを次に再起動すると、キーとすべてのサブキーに、新しいファイルに格納されているレジストリエントリが割り当てられる。
レジストリエディタ(Regedt32.exe または Regedit.exe)は、ここで言う「レジストリエントリ」を「値」(英語版は Value)と呼んでいる。どちらも同じものを意味していて、「名前」(レジストリエントリ名)と「データ」(レジストリエントリのデータ)で構成されている。

パラメータ
hKey
    現在開いているキーのハンドルを指定する。

    代わりに、あらかじめ定義されている次の予約済みハンドルのいずれかを指定することもできる。

    HKEY_CLASSES_ROOT
    HKEY_CURRENT_CONFIG
    HKEY_CURRENT_USER
    HKEY_LOCAL_MACHINE
    HKEY_USERS
lpSubKey
    置換対象のキーの名前を保持している、NULL で終わる文字列へのポインタを指定する。この関数は、このキーに所属しているサブキーと

    レジストリエントリを置き換える。このキーは、hKey パラメータで指定したキーのサブキーでなければならない。このパラメータで、NULL を

    指定することもできる。
    指定されたキーが、ハイブのルート(トップレベルのキー)ではない場合、RegReplaceKey 関数はハイブのツリー構造の最上位を検索し、ハイ

    ブのルートに到達すると、そのハイブの内容全体を、lpNewFile パラメータで指定されたデータファイルの内容で置き換える。
lpNewFile
    登録情報を保持しているファイルの名前を表す、NULL で終わる文字列へのポインタを指定する。通常、RegSaveKey 関数を使って作成

    したファイルを指定する。
lpOldFile
    置換前のレジストリ情報のバックアップコピーを保存するべきファイルの名前を保持している、NULL で終わる文字列へのポインタを指定す

    る。

戻り値
    関数が成功すると、ERROR_SUCCESS が返る。
    関数が失敗すると、Winerror.h ヘッダーファイル内で定義されている、0 以外のエラーコードが返る。

    FORMAT_MESSAGE_FROM_SYSTEM フラグを指定して 関数を呼び出すと、エラーの一般的な説明を取得できる。

解説
    lpNewFile パラメータで指定したファイルは、システムが再起動するまで開いたままになっている。
    hKey パラメータで、RegConnectRegistry 関数が返したハンドルを指定した場合、lpNewFile と lpOldFile の各パラメータで、リモートコン

    ピュータを基準とする相対パスを指定する。
    Windows NT/2000:呼び出し側のプロセスに、SE_RESTORE_NAME 特権を割り当てておかなければならない。
    Windows 95/98:レジストリのサブキー名、およびレジストリエントリ名の長さは、最大 255 文字である。