<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>いちばんやさしいゲームの作り方 &#187; UAC</title>
	<atom:link href="http://www.game-create.com/archives/tag/uac/feed" rel="self" type="application/rss+xml" />
	<link>http://www.game-create.com</link>
	<description>文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ</description>
	<lastBuildDate>Tue, 08 Jun 2010 01:28:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Vista において管理者で実行されるプログラムを作る</title>
		<link>http://www.game-create.com/archives/578</link>
		<comments>http://www.game-create.com/archives/578#comments</comments>
		<pubDate>Sun, 10 Aug 2008 06:57:11 +0000</pubDate>
		<dc:creator>Byerkut</dc:creator>
				<category><![CDATA[ゲームプログラミング]]></category>
		<category><![CDATA[UAC]]></category>
		<category><![CDATA[VC++ 2008 EE]]></category>
		<category><![CDATA[Windows Vista]]></category>
		<category><![CDATA[コンパイル]]></category>
		<category><![CDATA[マニフェスト]]></category>
		<category><![CDATA[リソース]]></category>

		<guid isPermaLink="false">http://www.game-create.com/?p=578</guid>
		<description><![CDATA[Vista において管理者で実行されるプログラムを作るためには、マニフェストファイルを作ってプログラムのリソースとして添付し、コンパイルします。

Windows Vista で高い権限が必要な作業にさしかかると一瞬画面 [...]]]></description>
			<content:encoded><![CDATA[<p>Vista において管理者で実行されるプログラムを作るためには、マニフェストファイルを作ってプログラムのリソースとして添付し、コンパイルします。</p>
<p><span id="more-578"></span></p>
<p>Windows Vista で高い権限が必要な作業にさしかかると一瞬画面が暗くなり、 UAC の働きによって「続行するにはあなたの許可が必要です」と出ることがありますが、あれをやるための方法です。</p>
<p>まず次のようにマニフェストファイルを作ります。このとき、拡張子を *.manifest にし、プロジェクトディレクトリへ配置します。</p>
<div class="hl-surround" ><div class="hl-main"><pre><span class="hl-brackets">&lt;?</span><span class="hl-reserved">xml </span><span class="hl-var">version</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">1.0</span><span class="hl-quotes">&quot; </span><span class="hl-var">encoding</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">UTF-8</span><span class="hl-quotes">&quot; </span><span class="hl-var">standalone</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">yes</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">?&gt;
&lt;</span><span class="hl-reserved">assembly </span><span class="hl-var">xmlns</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">urn:schemas-microsoft-com:asm.v1</span><span class="hl-quotes">&quot; </span><span class="hl-var">manifestVersion</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">1.0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;
  &lt;</span><span class="hl-reserved">trustInfo </span><span class="hl-var">xmlns</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">urn:schemas-microsoft-com:asm.v3</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;
    &lt;</span><span class="hl-reserved">security</span><span class="hl-brackets">&gt;
      &lt;</span><span class="hl-reserved">requestedPrivileges</span><span class="hl-brackets">&gt;
        &lt;</span><span class="hl-reserved">requestedExecutionLevel </span><span class="hl-var">level</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">requireAdministrator</span><span class="hl-quotes">&quot; </span><span class="hl-var">uiAccess</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">false</span><span class="hl-quotes">&quot; </span><span class="hl-brackets">/&gt;
      &lt;/</span><span class="hl-reserved">requestedPrivileges</span><span class="hl-brackets">&gt;
    &lt;/</span><span class="hl-reserved">security</span><span class="hl-brackets">&gt;
  &lt;/</span><span class="hl-reserved">trustInfo</span><span class="hl-brackets">&gt;
&lt;/</span><span class="hl-reserved">assembly</span><span class="hl-brackets">&gt;</span></pre></div></div>
<p>ポイントは requestedExecutionLevel です。この要素の level 属性値が requireAdministrator になっていると UAC によって権限昇格のダイアログが出現するようになります。</p>
<p>ファイルが作成できたら Visual C++ でプロジェクトを開いて、「プロジェクト」→「プロパティ」→「構成プロパティ」→「マニフェストツール」→「入力と出力」パネルに移動し、「追加のマニフェストファイル」の欄に先ほど作成したマニフェストファイルの名前を入力します（これは Visual C++ 2008 での手順です）。</p>
<p>ちなみに、これをやらずに Vista でシステムディレクトリに対する書き込みやレジストリに対する書き込みなどをやると、仮想ディレクトリや仮想レジストリに変更が隔離されます。ですので自分ひとりが使う場合には問題ないのですが、他のユーザがいるような場合は変更が反映されないという事態に陥ります。</p>
<p>本格的なアプリケーションを作る場合には覚えておいて損はありません。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.game-create.com/archives/578/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

