レジストリを読み書きする

test85.gif ATLライブラリにはレジストリを扱うクラスとしてCRegKeyが用意されている。このクラスを利用すると簡単にレジストリへ値を書き込んだり値を読み込める。
#include "atlstr.h"


bool	WriteTest(DWORD dwData)
{
	LONG	nRet;
	CRegKey	cRegistry;

	//レジストリキーがなければ作成(複数階層でも作成される)
	nRet = cRegistry.Create(HKEY_CURRENT_USER,_T("software\\usefullcode\\test85"),REG_NONE,REG_OPTION_NON_VOLATILE,KEY_WRITE);
	if(nRet != ERROR_SUCCESS)
		return	false;

	//DWORD値を書き込む
	nRet = cRegistry.SetDWORDValue(_T("test_dword"),dwData);

	cRegistry.Close();

	return	(nRet == ERROR_SUCCESS) ? true : false;
}



bool	ReadTest(DWORD* pdwData)
{
	LONG	nRet;
	CRegKey	cRegistry;

	if(pdwData == NULL)
		return	false;

	//レジストリキーがなければ失敗
	nRet = cRegistry.Open(HKEY_CURRENT_USER,_T("software\\usefullcode\\test85"),KEY_READ);
	if(nRet != ERROR_SUCCESS)
		return	false;

	//DWORD値を読み込む
	nRet = cRegistry.QueryDWORDValue(_T("test_dword"),*pdwData);

	cRegistry.Close();

	return	(nRet == ERROR_SUCCESS) ? true : false;
}


void	Test(void)
{
	bool		ret;
	DWORD		dwData;
	CAtlString	strMessage;

	ret = WriteTest(10);
	if(ret)
		ret = ReadTest(&dwData);

	if(ret == false && dwData != 10)
		::MessageBox(NULL,_T("失敗しました!"),_T(""),MB_OK);
	else
		::MessageBox(NULL,_T("成功しました"),_T(""),MB_OK);
}

プロジェクトファイルをダウンロード


カテゴリー「その他」 のエントリー