権限問題
windows vistaでは今までの windowsと権限周りで大きな変更が加わった.
XPではユーザーの権限が管理者であれば,プログラムを実行した際に管理者権限となる.
また,制限ユーザーであれば,プログラムは管理者権限ではない.
vistaからは,
ユーザーが管理者であろうと,制限であろうとどちらにせよ
通常のプログラム起動では管理者権限を持たない.
管理者権限を必要とする処理を行わせたい場合は,アイコンを右クリックし「管理者として実行」から起動すると
UAC(user Access Control)ダイアログが出る.これで許可を押すと管理者権限を持った状態に出来る.
これはUnixでいうsudoと同じである.
macはもともと上記のような設定になっているので,vistaはやっとこの部分macに追いついたことになる.
このダイアログを通常のプログラム起動(単なるダブルクリックや,別プログラムからのキック)時にも出したい場合には
プログラムに特定のmanifestをつける必要がある.
manifestは以下のようにXMLで記述します
<?xml version="1.0" encoding="utf-8"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" /> </requestedPrivileges> </security> </trustInfo> </assembly>
http://channel9.msdn.com/Showpost.aspx?postid=211271
プログラムにこのマニフェストをつける方法は後で書く.