この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 36267|答える: 3

[WinForm] C#プログラムは管理者権限で動作します

[リンクをコピー]
掲載地 2016/10/09 9:14:38 | | | |
VistaおよびWindows 7以降では、UAC(ユーザーアカウント制御)というセキュリティ機構が追加されており、UACが有効になると、ユーザーが管理者権限でログインしても、アプリケーションはシステムディレクトリやシステムレジストリ、その他の設定に書き込むことができず、これがシステムの通常の動作に影響を及ぼす可能性があります。 この仕組みはシステムのセキュリティを大幅に強化しますが、アプリケーション開発者に対してUACを強制的にオフにすることはできません。ただ、時には開発するアプリケーションが管理者のように動作する必要がある場合もあります。どうやってその機能を実現するのでしょうか?
C#プログラムがユーザーに管理者権限で実行するプロンプトをどのように実装しているかをご紹介します。
この例では、WinFormプログラムが新しいプロジェクトを生成し、それに応じて修正していることを示しています。
方法1:System.Diagnostics.Process.Start()経由でスタート:
実装方法:デフォルトで生成されたプログラムファイルを修正し、修正されたコードは以下の通りです:
コードはすでにコメントされているため、詳細には触れません。
効果:System.Diagnostics.Process.Start(の外部呼び出し)を呼び出して起動するため、VSを直接実行している場合、VSに対して管理者権限の必要性を促すのではなく、プログラム自体のみが管理者権限を必要とします。これはアプリケーションを生成するプログラムとは異なります。 これが方法2の実装との主な違いです。
方法2:アプリケーションマニフェストファイルを追加することで:
プロジェクト「新しい項目を追加」で「Application Manifest File」を選択し、「追加」ボタンをクリックします
追加されると、app.manifestファイルはデフォルトで開かれ、以下のような動作があります:
修正内容:
次にプロジェクトプロパティを開き、アプリケーションタブのリソースでマニフェストを新しいapp.manifestに修正します。
プロジェクトを再構築し、再度プログラムを開くと管理者権限で実行するよう促されます。
VSでデバッグを始めると、このタスクにはアプリケーションの権限が昇格する必要があると促されます。 以下に示すように:
「他の認証情報で再スタート」を選択して実行してください。
方法3:プログラムファイルのプロパティを直接変更する
プロパティダイアログボックスの互換性タブでプログラムファイルを右クリックしてください
「管理者としてこのプログラムを実行する」をチェックしてください。







先の:{"要素 '_id' はクラスのフィールドやプロパティに一致しません。}
次に:.NET/C# MongoDBクエリおよびファジィクエリの実装方法[ソースコード付き]
 地主| 掲載地 2016/10/09 9:15:27 |
プログラムが管理者として動作しているかどうかを判断してください
名前空間の追加が必要です:
System.Security.Principalを用い、


 地主| 掲載地 2021/01/26 9:59:52 |
C#はプログラムが管理者として実行されているかどうかを判定します
https://www.itsvse.com/thread-3004-1-1.html
 地主| 掲載地 2025/10/13 9:18:33 |
.NET CoreアプリはWindowsシステム上で管理者として動作します、コードは以下の通りです:


免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com