WIn32API レジストリキー、エントリ、データを一度に作成する RegSetKeyValue
レジストリキー、エントリ、データを一度に作成するには、 RegSetKeyValue関数を用いる
RegSetKeyValue関数のプロトタイプは、以下のとおり
LONG WINAPI RegSetKeyValue( __in HKEY hKey,//レジストリキーのハンドル __in_opt LPCTSTR lpSubKey, //サブキー名 __in_opt LPCTSTR lpValueName, //エントリ名 __in DWORD dwType, //エントリのデータ型 __in_opt LPCVOID lpData, //エントリのデータ __in DWORD cbData //エントリのデータサイズ );
#include <windows.h> #include <stdio.h> int main() { HKEY hKey; LONG lRet; DWORD dwDisposition; TCHAR lpData[] = TEXT("あいうえお"); DWORD dwNumberOfBytes = sizeof(lpData); //レジストリキー「HKEY_CURRENT_USER\test」を作成 lRet = RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("test"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_CREATE_SUB_KEY|KEY_SET_VALUE, NULL, &hKey, &dwDisposition); if (lRet != ERROR_SUCCESS) { return 1; } if (dwDisposition == REG_CREATED_NEW_KEY) { puts("Because the key did not exist, has been newly created."); } else if (dwDisposition == REG_OPENED_EXISTING_KEY) { puts("Key exists, and that was simply to open the key."); } //「HKEY_CURRENT_USER\test」に直下にサブキー「subkey」を作成し、 //そのサブキーに // *レジストリエントリ:「name」 // *データ:あいうえお (Unicode文字列型のデータ) //をセットする lRet = RegSetKeyValue(hKey, TEXT("subkey"), TEXT("name"), REG_SZ, lpData, dwNumberOfBytes); if (lRet != ERROR_SUCCESS) { printf("RegSetKeyValue error: %d\n", lRet); } RegCloseKey(hKey); return 0; }
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724921(v=vs.85).aspx