私はWPFアプリケーションを開発しています。myapp.exe
キー、値 ( 、 )を使用して、以下のパスのレジストリにキーを作成したいと考えています2710
。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION.
インストーラークラス、OnBeforeInstall
メソッドからこれを行う方法を提案できますか?
よろしく
Microsoft.Win32.Registry NuGet パッケージをインストールし、次のように使用します。
var keyName = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION";
Registry.SetValue(keyName , "myapp.exe", 2710, RegistryValueKind.DWord);
値を設定すると、欠落している場合に追加されます。
詳細については、ドキュメントを参照してください。
以下のコードを使用してキーを作成し、値を入力できます。
private string _subKey = "SOFTWARE\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BROWSER_EMULATION";
private string SubKey
{
get { return _subKey; }
set { _subKey = value; }
}
private RegistryKey _baseRegistryKey = Registry.LocalMachine;
private RegistryKey BaseRegistryKey
{
get { return _baseRegistryKey; }
set { _baseRegistryKey = value; }
}
private bool WriteDbToRegistry(string keyName, object value)
{
try
{
var rk = BaseRegistryKey;
var sk1 = rk.CreateSubKey(SubKey);
if(sk1 != null) sk1.SetValue(keyName.ToUpper(), value);
return true;
}
catch(Exception e)
{
MessageBox.Show("Please run your App as Administrator.", "Administrator");
return false;
}
}
bool results = WriteDbToRegistry("myapp.exe", "2710");
これが役立つことを願っています。