1

C# を使用してプログラムで Internet Explorer のプロキシ設定を有効/無効に変更しようとしています。これにより、プロキシを必要とする Web サイトとそうでない Web サイトを切り替えることができます。

私のコード:

string key = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";

RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(key, true);
RegKey.SetValue("ProxyEnable", 1);

レジストリを更新するために参照したほとんどの記事は、そうするリスクがあることを示しています。

私は知りたいです

  1. 上記のコードの実行に伴うリスクは何ですか

  2. リスクをカバーするためにできる緩和策はありますか。たとえば、特定のキーのレジストリ バックアップを作成します。

4

2 に答える 2

1

レジストリを変更するリスクは、単にシステムに損傷を与える可能性があるということです。本当に顧客のマシンで実行したい場合:

  • 変更するレジストリ エントリに関するすべてのドキュメントを読む
  • Windows のバージョンと製品のバージョンが異なると、レジストリ エントリが異なる可能性があることを考慮してください。
  • これらの値を変更したことがある人に尋ねる
  • アプリケーションがこれを行う権限を持っていることを確認してください (たとえば、管理者として実行します。これは、通常の使用では実行しないでください。たとえば、インストーラーでのみ実行してください)。
  • 変更をアンインストールできることを確認してください
于 2012-12-12T06:50:30.080 に答える
1

レジストリは OS によって制御される環境であり、OS から予期しない更新が行われる可能性があります。主なリスクは、データに実際に何が起こっているのかを知ることができないことだと思います (たとえば、Windows が値をリセットまたは上書きすることをお勧めすると判断した場合、すべてが失われます)。

また、別の回答へのコメントで誰かが言ったように、特にデータがレジストリで許可されている最大長を超えている場合、無効なエントリはデータの損失につながる可能性があります。

レジストリを変更する必要がある場合は、キーが存在するかどうかをテストし、上書きする前に元の値を追跡できます。もちろん、キーを変更しても予期しない影響が生じないようにする必要があります。

于 2012-12-12T07:37:02.420 に答える