レジストリのHKLM部分の下にいくつかのレジストリキーを書き込もうとしています。私は、これまでに見たいくつかのMSDNの例と同様の方法で、RegCreateKeyEx()とRegSetValueEx()を使用しています。
ただし、RegSetValueEx()呼び出しはエラー5で失敗し、FormatMessage()は「アクセスが拒否されました」と表示します。
昇格された権限をリクエストする必要があると思いますが、これを行うために必要なAPI呼び出しを認識していませんか?
これが私のコードです:
HKEY hk;
DWORD dwDisp;
LONG result = RegCreateKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\MyApp"), 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hk, &dwDisp);
if(result == ERROR_SUCCESS)
{
BYTE value[] = "Hello world!";
result = RegSetValueEx(hk, _T("MyValue"), 0, REG_EXPAND_SZ, value, strlen((char*)value)+1);
if(result != ERROR_SUCCESS)
{
DBG_PRINT2("RegSetValueEx failed with code: %d\n", result);
}
RegCloseKey(hk);
}