<?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>Easy &#187; Delphi</title>
	<atom:link href="http://www.mpnew.com/wordpress/archives/category/delphi/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mpnew.com/wordpress</link>
	<description></description>
	<lastBuildDate>Mon, 12 Jul 2010 13:10:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Delphi@Vista(一)：如何取得管理员权限</title>
		<link>http://www.mpnew.com/wordpress/archives/2008/83.html</link>
		<comments>http://www.mpnew.com/wordpress/archives/2008/83.html#comments</comments>
		<pubDate>Wed, 16 Jul 2008 09:45:04 +0000</pubDate>
		<dc:creator>easy</dc:creator>
				<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://www.mpnew.com/wordpress/?p=83</guid>
		<description><![CDATA[首先在考虑Vista的时候不要担心你的Delphi版本，其实即使是Delphi 5 (更低版本的我没有测试过)编译的软件都可以很好的在Vista下运行。虽然有很多人在骂Vista的UAC，无论它现在运作的好不好，但从计算机管理的角度来说，它确实是会让你的计算机更加安全，因此关于管理员权限方面，我希望大家在这样做之前先了解“我为什么这样做，什么时候需要这样做？”，而不是简单的提供一个例子，就让你的所有程序都运行在管理员权限下，看似很酷，但不一定能真的解决问题。]]></description>
			<content:encoded><![CDATA[<p><em><strong>原创内容，如需转载，请联系作者：easy@mpnew.com</strong></em><br />
首先在考虑Vista的时候不要担心你的Delphi版本，其实即使是Delphi 5 (更低版本的我没有测试过)编译的软件都可以很好的在Vista下运行。虽然有很多人在骂Vista的UAC，无论它现在运作的好不好，但从计算机管理的角度来说，它确实是会让你的计算机更加安全，因此关于管理员权限方面，我希望大家在这样做之前先了解“我为什么这样做，什么时候需要这样做？”，而不是简单的提供一个例子，就让你的所有程序都运行在管理员权限下，看似很酷，但不一定能真的解决问题。</p>
<p>其实很多时候我们并不需要管理员权限，特别是那些功能很简单的信息管理软件或者是网络通信(即时通信)类的软件来说基本上是不可能用到管理员权限的，如果你的程序非管理员权限不可，那么建议首先建立一份软件需要访问的资源列表，包括需要访问的目录、文件、注册表项等，然后逐一检查这些资源的所有者，如果它“应该”是你的，但你却访问不了，那么问题应当在你的安装程序或者安装方法上有问题。如果这些资源确实不是你建立或者安装的，而且你的应用也确实需要访问这些资源，那才真的需要考虑管理员权限问题。而且你需要知道一只必须管理员权限的程序有很多麻烦：<br />
1、每次运行时会弹出很难看的UAC警告<br />
2、你的程序写到启动组或注册表run键值里后不会生效<br />
3、你按以前方法建立的子进程都是管理员权限，这可能会被恶意软件所利用</p>
<p>如果你不担心以上问题，或者你的程序根本就是一个系统工具或者安装程序，那么其实很简单，你只需要：<br />
１、建立一个名为manifest.xml的文件，内容如下：<br />
<span style="color: #0000ff;"><span id="ctl00_MainPlaceHolder_Starter_BodyLabel">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br />
&lt;assembly xmlns=&#8221;urn:schemas-microsoft-com:asm.v1&#8243; manifestVersion=&#8221;1.0&#8243;&gt;<br />
&lt;trustInfo xmlns=&#8221;urn:schemas-microsoft-com:asm.v3&#8243;&gt;<br />
&lt;security&gt;<br />
&lt;requestedPrivileges&gt;<br />
&lt;requestedExecutionLevel level=&#8221;requireAdministrator&#8221; /&gt;<br />
&lt;/requestedPrivileges&gt;<br />
&lt;/security&gt;<br />
&lt;/trustInfo&gt;<br />
&lt;/assembly&gt;</span></span><br />
注意保存的时候使用utf-8无BOM格式，并且以上全为半角字符，不知道为何BLOG程序会将部分引号转换为全角。</p>
<p>2、建立一个资源文件manifest.rc，内容如下：<br />
<span style="color: #0000ff;">1 24 manifest.xml</span><br />
3、编译资源文件：<br />
<span style="color: #0000ff;">Brcc32.EXE manifest.rc</span><br />
4、在项目文件中包含这个资源：<br />
<span style="color: #0000ff;">{$R manifest.res}</span></p>
<p>如果你使用的是Delphi 2007版本的话，会因为原来的项目资源文件中已经包含了一个manifest资源而无法编译通过，这时可以直接把图标、版本信息等资源加到新的manifest.rc文件中，并把原来的资源文件删除即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mpnew.com/wordpress/archives/2008/83.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
