7
8

More than 5 years have passed since last update.

[C#]管理者権限でファイルを開くツール

Last updated at Posted at 2016-06-29

動機

最近ASP.NET開発をして思ったのです、
「毎回Visual Studioを右クリックして管理者として立ち上げた後にファイル開くの面倒だな?」
「C:\inetpub\以下に配置したweb.configをメモ帳などで開いても権限無いからそのまま上書きできないの面倒だな?」と
加えてマークダウン記法とやら使ってみたかったので初投稿も兼ねて投稿

Visual Studio 2013:タスクバーから管理者権限でIDEを起動するには?
http://www.atmarkit.co.jp/ait/articles/1408/26/news115.html

こちらから似たようなことができるみたいですが物によってはレジストリいじらないとだめだったり
開発者であるなら作っちゃおう

作ってみる

プロジェクトの作成、コーディング

今回使用するのは

  • Visual Studio 2015
  • C#
  • .NET4.6(.NET2.0以降で作れるはずです)

空のプロジェクトを作成し、コンソールアプリケーションからWindowsアプリケーションでコンパイルするように設定し、下記のコードを書く

Program.cs

    class Program
    {
        public static void Main(string[] Args)
        {
            foreach (var item in Args)
            {
                ProcessStartInfo psi = new ProcessStartInfo(item);
                var prs = Process.Start(psi);
            }
        }
    }

とっても簡素に書きました(((
何か色々指定したい人は変数psiの中身でもいじってくださいな

マニフェストファイルで管理者に昇格するように変更

プロジェクトを右クリックして、追加→新しい項目→マニフェストファイルを追加
自動生成される文の中の
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
asInvokerからrequireAdministratorに変更
これでアプリケーション自体が常に管理者権限で起動されます(もちろんUACを有効にしている場合は確認画面が出ます)

コンパイル

後は普通にコンパイルするだけで、そのアプリケーションに渡したファイルが管理者で開くようになります

送るメニューへの追加

Windowsキー + Rを押して、shell:sendtoと入力して送るメニューのフォルダを開いたら
そこに先ほど作ったソフトのショートカットを作成し、適当に
管理者権限で開くと名前を変えましょう

使ってみる

sendmenu.png
実際に管理者で開きたいファイルを右クリックし、送るメニューから
先ほど追加したアプリケーションを選択することで、該当のファイルやアプリケーションを管理者権限で開いたり立ち上げたりすることが可能になりました
administratorじゃないと編集や保存ができないファイルの編集や、
IISと連携させたプロジェクトファイルをファイルから直接開く際に便利ですね!やった!

注釈

間違ってたりする部分があると思います(というかあります)が生暖かい目で見てやってください
尚今回の記事を参考に作成して問題が発生しても知りません()

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8