C# アプリケーションを UAC に対応する

環境変数エディタでシステムの環境変数をいじるときは、管理者権限が必要ですが、今までは特に何も対策してきませんでした。

MoonWing: [C#]アプリケーションのUAC対応

参考にさせていただきました。が、まともに対応しようとするとちょっと面倒なので、とりあえず、管理者権限なしで起動された場合にメッセージを表示するようにしました。

MainForm.cs

        private void MainForm_Load(object sender, EventArgs e)
        {
            // アプリケーションが管理者権限で起動されているか
            if (Uac.IsAdministrator() == false)
            {
                MessageBox.Show("管理者権限なしでアプリケーションが起動されたため、ユーザーの環境変数のみ変更できます。\n" +
                    "システムの環境変数を変更するには、アプリケーションをいったん終了し、管理者権限で起動し直してください。",
                "環境変数エディタ", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
 
            LoadEnvVar();
            EnvVarList.ListViewItemSorter = this.envVarListComparer;
        }