動機
最近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アプリケーションでコンパイルするように設定し、下記のコードを書く
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
と入力して送るメニューのフォルダを開いたら
そこに先ほど作ったソフトのショートカットを作成し、適当に
管理者権限で開く
と名前を変えましょう
使ってみる
実際に管理者で開きたいファイルを右クリックし、送るメニューから
先ほど追加したアプリケーションを選択することで、該当のファイルやアプリケーションを管理者権限で開いたり立ち上げたりすることが可能になりました
administratorじゃないと編集や保存ができないファイルの編集や、
IISと連携させたプロジェクトファイルをファイルから直接開く際に便利ですね!やった!
注釈
間違ってたりする部分があると思います(というかあります)が生暖かい目で見てやってください
尚今回の記事を参考に作成して問題が発生しても知りません()