前回行ったレジストリ登録はHKEY_CURRENT_USERでしたが
今回はHKEY_LOCAL_MACHINEに登録してみようと思います
動かすサンプル
前回とほぼ一緒
Form1.cs
using Microsoft.Win32;
using System;
using System.Windows.Forms;
namespace TestApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (RegistryKey key = Registry.LocalMachine.CreateSubKey(
using System;
using System.Windows.Forms;
namespace TestApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (RegistryKey key = Registry.LocalMachine.CreateSubKey(
@"SOFTWARE\TestApp\AddReg"))
{
key.SetValue("RegName", "レジストリ登録");
}
}
}
}
{
key.SetValue("RegName", "レジストリ登録");
}
}
}
}
前回はRegistry.CurrentUserを使用しましたが
今回はRegistry.LocalMachineを使用します
動かすと、HKEY_LOCAL_MACHINE\SOFTWARE\TestApp\AddRegに
名前 :RegName
種類 :REG_SZ(文字列のやつ)
データ:レジストリ登録
という値が登録される想定です
そういう想定でした
実行結果
実行してみると何か例外吐きました
アクセスが拒否ってことは権限がないのかな、このvisual studio2019
今開いているvisual studioをいったん閉じて
スタートメニューからvisual studioを右クリックし
管理者として実行します
ウィンドウ右上に「管理者」って書いてあるので
ちゃんと管理者モードで起動したみたいです
これで実行してみると、通りました
前回同様レジストリエディターを探しに行きます
…\HKEY_LOCAL_MACHINE\SOFTWARE\配下に\TestAppが無い!
と思ったら\SOFTWAREの、\WOW6432Nodeの配下に
\TestApp\AddRegができてました
登録したキーと値も入ってます
メモ
レジストリ登録(HKEY_LOCAL_MACHINE)するときの書き方
using (RegistryKey key = Registry.LocalMachine.CreateSubKey(@"登録先のパス"))
{
key.SetValue("名前", 値);
}
{
key.SetValue("名前", 値);
}
※HKEY_LOCAL_MACHINEへの登録時は管理者モードで起動しないとダメかも
※\SOFTWARE配下に登録すると\WOW6432Nodeの下に登録される場合あり
どういう場合にこんな配置になるのとかはいつかなんか調べてみようと思います…