<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[洗秋杂语 - 学习]]></title>
  <subtitle type="html"><![CDATA[夜半无人私语时，想想光阴如梦蝶，往事难堪磋。]]></subtitle>
  <id>http://www.xiqiu.cn/blog/</id> 
  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.xiqiu.cn/blog/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.4.1022">PJBlog2</generator> 
  <updated>2009-03-22T16:51:49+08:00</updated> 

  <entry>
	  <title type="html"><![CDATA[【转帖】HP服务器RAID的设置]]></title>
	  <author>
		 <name>洗秋</name>
		 <uri>http://www.xiqiu.cn/blog/</uri>
		 <email>洗秋杂语</email>
	  </author>
	  <category term="" scheme="http://www.xiqiu.cn/blog/default.asp?cateID=14" label="学习" /> 
	  <updated>2009-03-22T16:51:49+08:00</updated>
	  <published>2009-03-22T16:51:49+08:00</published>
		  <summary type="html"><![CDATA[<div class="tit"><font size="3">HP服务器RAID的设置</font></div>
<div class="date"><font size="3">2008/10/24 15:47</font></div>
<table style="TABLE-LAYOUT: fixed">
    <tbody>
        <tr>
            <td>
            <div class="cnt" id="blog_text">
            <p><font size="3">1、使用惠普服务器集成的NetRAID控制器<br /><br />惠普服务器中有一个集成的磁盘阵列控制器，通过它可以配置服务器中的磁盘组成RAID，使系统中存储的数据更安全可靠。我们可以如下操作使NetRAID可用。<br /><br />首先在服务器启动过程中，出现&ldquo;Press to enter SETUP&rdquo;提示时，按F2键进入SETUP，修改服务器的BIOS设置。在服务器的BIOS设置界面中，选择&ldquo;User Preferences&rdquo;项，确认&ldquo;Integrated HP NetRAID&rdquo;所对应的内容为&ldquo;Enabled&rdquo;，并且把它的下一级选项&ldquo;Included SCSI_A Channel&rdquo;设为&ldquo;Yes&rdquo;，即把磁盘阵列控制器设为可用，并把服务器上的SCSI A通道包括在磁盘阵列控制器中。按F10键保存设置并退出BIOS，重新启动服务器。</font></p>
            <p><font size="3">接着在服务器重新启动过程中，出现&ldquo;Option：Experienced users may press for HP NetRAID Express Tools Now.&rdquo;时，按Ctrl+M组合键进入HP NetRAID快速配置工具。在&ldquo;Tools Management Menu&rdquo;菜单下，选择&ldquo;Configure &rarr; Clear Configuration&rdquo;,清除原先的配置，如以前没有配置RAID，则会出现 &ldquo;No Existing Configuration to Clear&rdquo; 的提示；如系统配置了RAID，则提示&ldquo;Clear Configuration?&rdquo;,选择&ldquo;Yes&rdquo;清除配置。按&ldquo;Esc&rdquo;键返回配置菜单，选择&ldquo;New Configuration&rdquo;,对 &ldquo;Proceed?&rdquo; 回答&ldquo;Yes&rdquo;，服务器会开始查找磁盘，查找结束后，所有找到的磁盘会在&ldquo;New Configuration-ARRAY SelectION MENU&rdquo;菜单下显示为&ldquo;READY&rdquo;就绪状态<br /><br />此时依次按空格键选中要添加到阵列中的磁盘，显示为&ldquo;ONLIN&rdquo;在线状态，选中所有的磁盘后，按回车键结束阵列的选择；再按回车键进入&ldquo;Logical Drives Configured&rdquo;菜单，选择RAID的级别，阵列容量的大小，以及修改&ldquo;Advanced Menu&rdquo;高级菜单中的条带容量（Stripe Size），写入策略（Write Policy），读取策略（Read Policy）和高速缓存策略（Cache Policy）选项，它们的默认值为&ldquo;Stripe Size=64KB&rdquo;,&ldquo;Write Policy=WRTHRU&rdquo;,&ldquo;Read Policy=ADAPTIVE&rdquo;和&ldquo;Cache Policy=CachedIO&rdquo;，用户可以根据所使用服务器的具体情况进行设置。选择&ldquo;Accept&rdquo;确认设置，按&ldquo;Esc&rdquo;键结束阵列配置，并保存设置，重新启动服务器。<br /><br />注意：改变RAID级别会造成服务器上存储数据的丢失，所以在操作前需要备份重要数据。</font></p>
            <p><font size="3">2、设置系统热备用磁盘</font></p>
            <p><font size="3">惠普服务器的SCSI磁盘（物理驱动器）分别有Ready（就绪），Online（在线），Hot Spare（热备用），Failed（故障）和Rebuilding（重建）五种状态。而热备用是当一个正在使用的磁盘发生故障后，一个空闲、加电并待机的磁盘将马上代替此故障盘。当磁盘发生故障时，控制器的固件能自动的用热备用磁盘代替故障磁盘，并通过算法把原来储存在故障磁盘上的数据重建到热备用磁盘上。所以系统的在线磁盘出现故障时，会自动地用热备用磁盘替换故障磁盘，防止系统崩溃。</font></p>
            <p><font size="3">如何配置系统的热备用磁盘呢？这与设置新的RAID阵列过程大致相同，只是在&ldquo;New Configuration-ARRAY SelectION MENU&rdquo;菜单下，显示所有的就绪磁盘时，移动光标高亮度显示需要作为热备用的磁盘，按F4键，出现&ldquo;Make Hotspare&rdquo;的提示，选择&ldquo;Yes&rdquo;确认，此磁盘即显示状态为&ldquo;HOTSP&rdquo;，然后再配置RAID阵列.</font></p>
            <p><font size="3">我们还要设置系统的自动重建和重建率。在&ldquo;Tools Management Menu&rdquo;菜单下，选择&ldquo;Objects&rarr;Adapter&rdquo;,出现&ldquo;Adapter Menu&rdquo;，查看&ldquo;Auto Rebuild&rdquo;的选项是否为&ldquo;Enabled&rdquo;，并且把&ldquo;View/Update Rebuild Rate&rdquo;重建率设置在百分五十为好</font></p>
            <p><font size="3">注意：热备用磁盘上不存储任何的用户数据，所以系统配置了热备用磁盘后，可用逻辑盘空间会相应减少。服务器上存储的数据只能从带有冗余的逻辑驱动器上进行重建，即在RAID 0阵列中配置热备用磁盘是根本不起作用的。如果自动重建不可用或重建率设置为0，阵列中有磁盘损坏后，系统不会自动把坏盘上的数据重建到热备用盘上，这时需要通过&ldquo;HP NetRAID Assistant&rdquo;软件手工进行重建操作。<br /><br /><br /><br /><br /><br />3、服务器的在线扩容<br /><br />服务器使用一段时间后，随着数据的不断增加，磁盘可用容量会逐渐减少。管理员会给服务器增加新的磁盘，通常的做法是，先备份数据，然后安装新磁盘，配置RAID级别，接着安装操作系统，重新设置系统环境，最后恢复用户数据。这真是一个浩大的工程，就没有别的简便的方法吗？其实我们可以在惠普服务器上使用在线扩容的方法，即在不中断服务器运行的情况下，添加新的磁盘，并建立一个新的逻辑驱动器，使系统的容量增加。<br /><br />在服务器安装Windows NT操作系统前，必须先设置服务器的虚拟容量为可用。重启服务器，按Ctrl+M组合键进入HP NetRAID快速配置工具，在工具管理菜单中点击&ldquo;Objects &rarr; Logical Drive &rarr; Properties&rdquo;，选择&ldquo;Virtual Sizing&rdquo;,确认此项为&ldquo;Enable&rdquo;,退出工具管理菜单，即完成虚拟容量的设置（如图6）。安装Windows NT后，我们进入磁盘管理器会发现操作系统中有500G的逻辑驱动器容量，这就是NetRAID控制器的虚拟容量选项对操作系统造成的假象，为系统提供了在线扩容的前提条件。虽然有500G的空间，但事实上，我们只有实际存在的物理存储容量可用，即如果我们用四个9G的物理盘做了一个RAID 5，真实的存储容量为27G，有9G作为存储校验数据用，而余下的464G容量是假的，不能使用<br /><br />现在我们就可以在线扩容了，把一个相同容量的物理盘（在此为9G）插到一个空的热交换存储槽中， 在Windows NT下运行HP NetRAID Assistant软件（惠普服务器的随机光盘中有此软件），在&ldquo;Logical Devices&rdquo;和&ldquo;Physical Devices&rdquo;列表框中分别选择逻辑驱动器和新添加的物理驱动器，然后选择菜单中的&ldquo;Logical Drive &rarr; Change Config &rarr; Add Capacity&rdquo;，此时系统将进行重构（reconstructs），把四个9G磁盘的RAID 5转变为五个盘的RAID 5（如图7）。重构是在后台操作的，所以在此过程中不要关闭服务器。重构的速率主要与驱动器的性能和系统数据的多少有关，一般可以达到80-180MB每分钟。重构完成后，打开磁盘管理器，选择可用空间，建立一个9G的主分区，格式化此分区就可以获得一个新的逻辑驱动器。<br /><br />注意：Windows NT，2000和NetWare 4.2，5操作系统下，都可以在线增加目前卷的容量。在Windows 2000或NetWare 5系统下，准备在线扩容时，要禁用虚拟容量选项；而在Windows NT或NetWare 4.2系统下，要使虚拟容量选项可用才能进行在线扩容。在线扩容只能在单一阵列中的唯一逻辑驱动器上才可以运行，你不能在跨越阵列中使用在线扩容。添加新的物理盘必须与系统使用的物理盘容量相同，否则形成的新磁盘阵列只会以几个物理盘中容量最小的为准，造成不必要的资源浪费</font></p>
            </div>
            </td>
        </tr>
    </tbody>
</table>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/default.asp?id=349" /> 
	  <id>http://www.xiqiu.cn/blog/default.asp?id=349</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[【转贴】HP服务器RAID的设置]]></title>
	  <author>
		 <name>洗秋</name>
		 <uri>http://www.xiqiu.cn/blog/</uri>
		 <email>洗秋杂语</email>
	  </author>
	  <category term="" scheme="http://www.xiqiu.cn/blog/default.asp?cateID=14" label="学习" /> 
	  <updated>2009-03-22T16:49:49+08:00</updated>
	  <published>2009-03-22T16:49:49+08:00</published>
		  <summary type="html"><![CDATA[<p><font size="3">1、使用惠普服务器集成的NetRAID控制器 </font></p>
<p><font size="3">惠普服务器中有一个集成的磁盘阵列控制器，通过它可以配置服务器中的磁盘组成RAID，使系统中存储的数据更安全可靠。我们可以如下操作使NetRAID可用。 </font></p>
<p><font size="3">首先在服务器启动过程中，出现&ldquo;Press to enter SETUP&rdquo;提示时，按F2键进入SETUP，修改服务器的BIOS设置。在服务器的BIOS设置界面中，选择&ldquo;User Preferences&rdquo;项，确认&ldquo;Integrated HP NetRAID&rdquo;所对应的内容为&ldquo;Enabled&rdquo;，并且把它的下一级选项&ldquo;Included SCSI_A Channel&rdquo;设为&ldquo;Yes&rdquo;，即把磁盘阵列控制器设为可用，并把服务器上的SCSI A通道包括在磁盘阵列控制器中。按F10键保存设置并退出BIOS，重新启动服务器。 </font></p>
<p><br /><font size="3">接着在服务器重新启动过程中，出现&ldquo;Option：Experienced users may press for HP NetRAID Express Tools Now.&rdquo;时，按Ctrl+M组合键进入HP NetRAID快速配置工具。在&ldquo;Tools Management Menu&rdquo;菜单下，选择&ldquo;Configure &rarr; Clear Configuration&rdquo;,清除原先的配置，如以前没有配置RAID，则会出现 &ldquo;No Existing Configuration to Clear&rdquo; 的提示；如系统配置了RAID，则提示&ldquo;Clear Configuration?&rdquo;,选择&ldquo;Yes&rdquo;清除配置。按&ldquo;Esc&rdquo;键返回配置菜单，选择&ldquo;New Configuration&rdquo;,对 &ldquo;Proceed?&rdquo; 回答&ldquo;Yes&rdquo;，服务器会开始查找磁盘，查找结束后，所有找到的磁盘会在&ldquo;New Configuration-ARRAY SelectION MENU&rdquo;菜单下显示为&ldquo;READY&rdquo;就绪状态 </font></p>
<p><font size="3">此时依次按空格键选中要添加到阵列中的磁盘，显示为&ldquo;ONLIN&rdquo;在线状态，选中所有的磁盘后，按回车键结束阵列的选择；再按回车键进入&ldquo;Logical Drives Configured&rdquo;菜单，选择RAID的级别，阵列容量的大小，以及修改&ldquo;Advanced Menu&rdquo;高级菜单中的条带容量（Stripe Size），写入策略（Write Policy），读取策略（Read Policy）和高速缓存策略（Cache Policy）选项，它们的默认值为&ldquo;Stripe Size=64KB&rdquo;,&ldquo;Write Policy=WRTHRU&rdquo;,&ldquo;Read Policy=ADAPTIVE&rdquo;和&ldquo;Cache Policy=CachedIO&rdquo;，用户可以根据所使用服务器的具体情况进行设置。选择&ldquo;Accept&rdquo;确认设置，按&ldquo;Esc&rdquo;键结束阵列配置，并保存设置，重新启动服务器。 </font></p>
<p><font size="3">注意：改变RAID级别会造成服务器上存储数据的丢失，所以在操作前需要备份重要数据。 </font></p>
<p><font size="3">2、设置系统热备用磁盘 </font></p>
<p><font size="3">惠普服务器的SCSI磁盘（物理驱动器）分别有Ready（就绪），Online（在线），Hot Spare（热备用），Failed（故障）和Rebuilding（重建）五种状态。而热备用是当一个正在使用的磁盘发生故障后，一个空闲、加电并待机的磁盘将马上代替此故障盘。当磁盘发生故障时，控制器的固件能自动的用热备用磁盘代替故障磁盘，并通过算法把原来储存在故障磁盘上的数据重建到热备用磁盘上。所以系统的在线磁盘出现故障时，会自动地用热备用磁盘替换故障磁盘，防止系统崩溃。 </font></p>
<p><font size="3">如何配置系统的热备用磁盘呢？这与设置新的RAID阵列过程大致相同，只是在&ldquo;New Configuration-ARRAY SelectION MENU&rdquo;菜单下，显示所有的就绪磁盘时，移动光标高亮度显示需要作为热备用的磁盘，按F4键，出现&ldquo;Make Hotspare&rdquo;的提示，选择&ldquo;Yes&rdquo;确认，此磁盘即显示状态为&ldquo;HOTSP&rdquo;，然后再配置RAID阵列. </font></p>
<p><font size="3">因为要让系统自动重建数据，所以我们还要设置系统的自动重建和重建率。在&ldquo;Tools Management Menu&rdquo;菜单下，选择&ldquo;Objects&rarr;Adapter&rdquo;,出现&ldquo;Adapter Menu&rdquo;，查看&ldquo;Auto Rebuild&rdquo;的选项是否为&ldquo;Enabled&rdquo;，并且把&ldquo;View/Update Rebuild Rate&rdquo;重建率设置在50%左右为好 </font></p>
<p><font size="3">注意：热备用磁盘上不存储任何的用户数据，所以系统配置了热备用磁盘后，可用逻辑盘空间会相应减少。服务器上存储的数据只能从带有冗余的逻辑驱动器上进行重建，即在RAID 0阵列中配置热备用磁盘是根本不起作用的。如果自动重建不可用或重建率设置为0，阵列中有磁盘损坏后，系统不会自动把坏盘上的数据重建到热备用盘上，这时需要通过&ldquo;HP NetRAID Assistant&rdquo;软件手工进行重建操作。 </font></p>
<p><font size="3"></font></p>
<p><font size="3"></font></p>
<p><font size="3">3、服务器的在线扩容 </font></p>
<p><font size="3">服务器使用一段时间后，随着数据的不断增加，磁盘可用容量会逐渐减少。管理员会给服务器增加新的磁盘，通常的做法是，先备份数据，然后安装新磁盘，配置RAID级别，接着安装操作系统，重新设置系统环境，最后恢复用户数据。这真是一个浩大的工程，就没有别的简便的方法吗？其实我们可以在惠普服务器上使用在线扩容的方法，即在不中断服务器运行的情况下，添加新的磁盘，并建立一个新的逻辑驱动器，使系统的容量增加。 </font></p>
<p><font size="3">在服务器安装Windows NT操作系统前，必须先设置服务器的虚拟容量为可用。重启服务器，按Ctrl+M组合键进入HP NetRAID快速配置工具，在工具管理菜单中点击&ldquo;Objects &rarr; Logical Drive &rarr; Properties&rdquo;，选择&ldquo;Virtual Sizing&rdquo;,确认此项为&ldquo;Enable&rdquo;,退出工具管理菜单，即完成虚拟容量的设置（如图6）。安装Windows NT后，我们进入磁盘管理器会发现操作系统中有500G的逻辑驱动器容量，这就是NetRAID控制器的虚拟容量选项对操作系统造成的假象，为系统提供了在线扩容的前提条件。虽然有500G的空间，但事实上，我们只有实际存在的物理存储容量可用，即如果我们用四个9G的物理盘做了一个RAID 5，真实的存储容量为27G，有9G作为存储校验数据用，而余下的464G容量是假的，不能使用 </font></p>
<p><font size="3">现在我们就可以在线扩容了，把一个相同容量的物理盘（在此为9G）插到一个空的热交换存储槽中， 在Windows NT下运行HP NetRAID Assistant软件（惠普服务器的随机光盘中有此软件），在&ldquo;Logical Devices&rdquo;和&ldquo;Physical Devices&rdquo;列表框中分别选择逻辑驱动器和新添加的物理驱动器，然后选择菜单中的&ldquo;Logical Drive &rarr; Change Config &rarr; Add Capacity&rdquo;，此时系统将进行重构（reconstructs），把四个9G磁盘的RAID 5转变为五个盘的RAID 5（如图7）。重构是在后台操作的，所以在此过程中不要关闭服务器。重构的速率主要与驱动器的性能和系统数据的多少有关，一般可以达到80-180MB每分钟。重构完成后，打开磁盘管理器，选择可用空间，建立一个9G的主分区，格式化此分区就可以获得一个新的逻辑驱动器。 </font></p>
<p><font size="3">注意：Windows NT，2000和NetWare 4.2，5操作系统下，都可以在线增加目前卷的容量。在Windows 2000或NetWare 5系统下，准备在线扩容时，要禁用虚拟容量选项；而在Windows NT或NetWare 4.2系统下，要使虚拟容量选项可用才能进行在线扩容。在线扩容只能在单一阵列中的唯一逻辑驱动器上才可以运行，你不能在跨越阵列中使用在线扩容。添加新的物理盘必须与系统使用的物理盘容量相同，否则形成的新磁盘阵列只会以几个物理盘中容量最小的为准，造成不必要的资源浪费。 </font></p>
<p><font size="3">连接到服务器上； <br />启动服务器； <br />按F8进入ACU配置,select creation array,select RAID+5； <br />按F3保存，exit and done.</font></p>
<p><font size="3">本文来自: (</font><a href="http://www.91linux.com"><font size="3">www.91linux.com</font></a><font size="3">) 详细出处参考：</font><a href="http://www.91linux.com/html/article/guanli/20081010/13489_2.html"><font size="3">http://www.91linux.com/html/article/guanli/20081010/13489_2.html</font></a></p>
<p><font size="3">本文来自: (</font><a href="http://www.91linux.com"><font size="3">www.91linux.com</font></a><font size="3">) 详细出处参考：</font><a href="http://www.91linux.com/html/article/guanli/20081010/13489.html"><font size="3">http://www.91linux.com/html/article/guanli/20081010/13489.html</font></a></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/default.asp?id=348" /> 
	  <id>http://www.xiqiu.cn/blog/default.asp?id=348</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[截图软件红蜻蜓]]></title>
	  <author>
		 <name>洗秋</name>
		 <uri>http://www.xiqiu.cn/blog/</uri>
		 <email>洗秋杂语</email>
	  </author>
	  <category term="" scheme="http://www.xiqiu.cn/blog/default.asp?cateID=14" label="学习" /> 
	  <updated>2008-03-29T17:50:18+08:00</updated>
	  <published>2008-03-29T17:50:18+08:00</published>
		  <summary type="html"><![CDATA[<p>　　在截图软件市场上，SnagIt一直占据着领头羊的位置。其实，这个市场同样也不全是它收费软件的&ldquo;天下&rdquo;。正像我们今天要给大家介绍的这款&ldquo;红蜻蜓&rdquo;，便是免费截图软件之中的代表之作。<br /><br />　　由于SnagIt的很多模式都已被用户接受，因此，红蜻蜓在功能设计上并未独出心裁。而是完全参照SnagIt软件，搞了个&ldquo;精简版本&rdquo;。不过，虽说功能上略有缩水，但凭借其体积仅为SnagIt 1/6的优势，红蜻蜓在速度方面却完全胜过了对手。因此，如果您只是想实现一些简单的截图工作的话，这款红蜻蜓截屏软件应该是您不错的选择，如图5所示。</p>
<p align="center"><img title="拒绝破解,用10大免费软件来代替盗版" alt="拒绝破解,用10大免费软件来代替盗版" src="http://school.cfan.com.cn/soft/othersoft/h004/h56/img200707240745364.jpg" border="0" /></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/default.asp?id=332" /> 
	  <id>http://www.xiqiu.cn/blog/default.asp?id=332</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[看图软件FastStone]]></title>
	  <author>
		 <name>洗秋</name>
		 <uri>http://www.xiqiu.cn/blog/</uri>
		 <email>洗秋杂语</email>
	  </author>
	  <category term="" scheme="http://www.xiqiu.cn/blog/default.asp?cateID=14" label="学习" /> 
	  <updated>2008-03-29T17:48:23+08:00</updated>
	  <published>2008-03-29T17:48:23+08:00</published>
		  <summary type="html"><![CDATA[　　如果您现在还在使用古老的ACDSee，那就显得太落伍了。虽说在当年，这还是一款非常优秀的看图工具，但时至今日，日渐臃肿的“身材”不仅大大拖慢了它的运行速度，而且，设置窗口中那密密麻麻的选项也开始让我们犯晕了。而与之正好相反的是，各种免费看图工具却如雨后春笋般日渐成熟起来，而本文所介绍的FastStone正是其中一例精品。<br/><br/>　　FastStone的体积非常小巧，仅有4.2 MB左右，甚至比最经典的ACDSee 3.1还要小。因此，它的启动和运行非常迅速，丝毫不需用户等待。在功能方面，FastStone并没有因为体积的小巧而缩水，像平时常用的图片浏览、幻灯播放、格式转换等等，一个都没有落下。而且，它还创新性地开发了很多实用的新功能。比如，多图同屏对比、点击自动放大、全屏切换目录等等，就连最新版的ACDSee 9.0都望尘莫及，]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/default.asp?id=331" /> 
	  <id>http://www.xiqiu.cn/blog/default.asp?id=331</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[佳能A系相机拍摄技巧]]></title>
	  <author>
		 <name>洗秋</name>
		 <uri>http://www.xiqiu.cn/blog/</uri>
		 <email>洗秋杂语</email>
	  </author>
	  <category term="" scheme="http://www.xiqiu.cn/blog/default.asp?cateID=14" label="学习" /> 
	  <updated>2007-05-09T08:12:39+08:00</updated>
	  <published>2007-05-09T08:12:39+08:00</published>
		  <summary type="html"><![CDATA[佳能A系相机拍摄技巧<br/>1、点测光怎么用？<br/>&nbsp;&nbsp; 点测光是从P档开始的手动档才有的测光方式，从AUTO开始的自动档没有。首先转到这些档，按相机最中间的那个功能键，出现调节菜单，然后用上下键调到测光处，再用左右键调到中间只有一个点的测光方式，按功能键（func)确定，然后半按快门键对准需要测光的部位到绿框内，快门保持半按，再按一下左上角那个+/-键，使得曝光锁定，然后松开快门，重新构图，最后就是按动快门。<br/>&nbsp;&nbsp;&nbsp;&nbsp;2、怎样手动调焦？<br/>&nbsp;&nbsp; 当需要调整好焦距等待时机拍片时、拍微距需要精准调焦时、光线暗不好合焦时都需要用到手动调整焦距。怎么操作呢？<br/>&nbsp;&nbsp; 在任何模式下都可以手动调焦，按动两次下方向键（一次是微距），就出现手动调焦指示了，用左右方向键调整距离与实际距离吻合就行了，就可以按下快门拍片了。<br/>&nbsp;&nbsp; 3、什么是光圈优先与快门优先？分别在什么情况下用？<br/>&nbsp;&nbsp;&nbsp;&nbsp; 我们知道，佳能A系列有光圈优先与快门优先档，他们分别用在什么情况下呢？<br/>&nbsp;&nbsp;&nbsp;&nbsp; 光圈越大，则单位时间内通过的光线越多，反之则越少。光圈的一般表示方法为字母“F+数值”，例如F5.6、F4等等。这里需要注意的是数值越小，表示光圈越大，比如F4就要比F5.6的光圈大，并且两个相邻的光圈值之间相差两倍，也就是说F4比F5.6所通过的光线要大两倍。相对来说快门的定义就很简单了，也就是允许光通过光圈的时间，表示的方式就是数值，例如1/30秒、1/60秒等，同样两个相邻快门之间也相差两倍。<br/>　　光圈和快门的组合就形成了曝光量，在曝光量一定的情况下，这个组合不是惟一的。例如当前测出正常的曝光组合为F5.6、1/30秒，如果将光圈增大一级也就是F4，那么此时的快门值将变为1/60，这样的组合同样也能达到正常的曝光量。不同的组合虽然可以达到相同的曝光量，但是所拍摄出来的图片效果是不相同的。<br/>&nbsp;&nbsp;&nbsp;&nbsp;这里就涉及到“景深”的概念，所谓景深就是指当镜头对焦于被摄体时，被摄体及其前后的景物有一段清晰的范围，这个范围就叫景深。<br/>&nbsp;&nbsp; a、光圈优先大多用在拍人像以及风景时<br/>&nbsp;&nbsp; 光圈优先就是手动定义光圈的大小，相机会根据这个光圈值确定快门速度。由于光圈的大小直接影响着景深，因此在平常的拍摄中此模式使用最为广泛。在拍摄人像时，我们一般采用大光圈长焦距而达到虚化背景获取较浅景深的作用，这样可以突出主体。同时较大的光圈，也能得到较快的快门值，从而提高手持拍摄的稳定。在拍摄风景这一类的照片时，我们往往采用较小的光圈值，这样景深的范围比较广，可以使远处和近处的景物都清晰，同样这一点在拍摄夜景时也适用。<br/>&nbsp;&nbsp; b、快门优先多用于拍摄运动的物体上，例如体育运动、行使中的车辆、瀑布、飞行中的物体、烟花、水滴等等。<br/>&nbsp;&nbsp;&nbsp;&nbsp;与光圈优先相反，快门优先是在手动定义快门的情况下通过相机测光而获取光圈值。快门优先多用于拍摄运动的物体上，特别是在体育运动拍摄中最常用。很多朋友在拍摄运动物体时发现，往往拍摄出来的主体是模糊的，这多半就是因为快门的速度不够快。在这种情况下你可以使用快门优先模式，大概确定一个快门值，然后进行拍摄。并且物体的运行一般都是有规律的，那么快门的数值也可以大概估计，例如拍摄行人，快门速度只需要1/125秒就差不多了，而拍摄下落的水滴则需要1/1000秒。<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 总之，在光圈优先的情况下，我们可以通过改变光圈的大小来轻松地控制景深，而在快门优先的情况下，利用不同的光圈对运动的物体能达到很好的拍摄效果。这两者都要灵活运用，满足我们不同情况下的拍摄要求。<br/>4、怎么拍好人像？<br/>首先，要用到长焦，3--4倍的长焦非常适合拍人像，广角端会使得人像有些变形，不好看，超过4倍甚至更长焦会使得人脸过于扁平，不够生动。<br/>&nbsp;&nbsp;其次，光圈优先，选择大光圈，大光圈可以使得快门变快，减少晃动，并且使得背景尽可能的虚化。<br/>&nbsp;&nbsp;最好选择点测光，对人脸点测光，并使用曝光锁定。因为其他测光方式容易受到衣服颜色的影响，使得人脸曝光不正常。<br/>&nbsp;&nbsp;最后，构图。人像最好占到1/3-1/2，并且脸部在上方1/3处（从下看是0.618处）。这样拍出的人像片就会生动，有视觉的冲击力，让人看着好看。<br/>&nbsp;&nbsp;&nbsp;&nbsp;5、拍好微距的两点建议<br/>&nbsp;&nbsp; 拍好微距，需要用光、构图讲究技巧，我们在以后的贴子中再提。<br/>&nbsp;&nbsp; 我们首先要掌握的是怎么把微距拍清楚，不要拍糊呢？注意以下两点就行了。<br/>&nbsp;&nbsp; 首先，用三角架。手持不稳，放大之后总看到片糊，所以第一条，用三角架。<br/>&nbsp;&nbsp; 然后，用自拍机。我们发现，即使用架，在按动快门时仍然带入了晃动，最好的办法，启动自拍机。<br/>&nbsp;&nbsp; 启动自拍机的方法：按动最中间的功能键，上下键选到驱动模式（即矩形框），左右键选择10秒或2秒，2秒太快，10秒可以有比较充足的准备时间。最后按功能键确定。<br/>&nbsp;&nbsp;&nbsp;&nbsp; 6、曝光补偿怎么用？分别用在什么情况下？<br/>按动+-键，就会出现曝光补偿调节条，左右键调整正负补偿及大小，一次1/3级。<br/>调整好后再按一次+-键确定。<br/>&nbsp;&nbsp;曝光补偿怎么应用呢？<br/>&nbsp;&nbsp;总起来讲，是白加黑减，白的环境下，测光有偏低的状况，需要增加，反之亦然。<br/>&nbsp;&nbsp;a、 拍摄环境比较昏暗，需要增加亮度，而闪光灯无法起作用时，可对曝光进行补偿，适当增加曝光量。<br/>&nbsp;&nbsp;b、被拍摄的白色物体在照片里看起来是灰色或不够白的时候，要增加曝光量，简单的说就是“越白越加”，这似乎与曝光的基本原则和习惯是背道而驰的，其实不然，这是因为相机的测光往往以中心的主体为偏重，白色的主体会让相机误以为很环境很明亮，因而曝光不足，这也是多数初学者易犯的通病。 <br/>&nbsp;&nbsp;c、当你在一个很亮的背景前拍摄的时候，比如向阳的窗户前，逆光的景物等要增加曝光量或使用闪光灯。<br/>&nbsp;&nbsp;d、当你在海滩、雪地、阳光充足或一个白色背景前，拍摄人物的时候，要增加曝光量并使用闪光灯，否则主体反而偏暗。<br/>&nbsp;&nbsp;e、拍摄雪景的时候，背景光线被雪反射得特别强，相机的测光偏差特别大，此时要增加曝光量，否则白雪将变成灰色。 <br/>&nbsp;&nbsp;f、拍摄黑色的物体，在照片里看和色变色发灰的时候，应该减小曝光量，使黑色更纯。<br/>&nbsp;&nbsp;g、当你在一个黑色背景前拍摄的时候，也需要降低一点曝光量以免主体曝光过度。 <br/>（夜景拍摄需要通过加大曝光补偿来获得足够的曝光量） <br/>&nbsp;&nbsp;h、夜景拍摄，应该关闭闪光灯，提高曝光值，靠延长相机的曝光时间来取得灯火辉煌的效果，这一点对于没有手动调整模式的自动型数码相机特别重要。很多使用数码相机的人感觉夜景拍摄能力很差，其实没有正确使用相机的曝光方法是重要原因之一。<br/>&nbsp;&nbsp;i、阴天和大雾的时候，环境仍然是明亮的，但是实际物体的照度明显不足，如果不加曝光补偿则可能造成照片昏暗，适当的曝光补偿，加0.3到0.7可以使得景物亮度更加自然。 <br/>&nbsp;&nbsp;j、在某些艺术摄影中，比如拍摄高调的照片，要增加曝光补偿，形成大对比度的照片，更好地表现作者的拍摄意图。同样的，在某些时候，需要刻意降低照片亮度的，就应降低曝光补偿。 <br/>&nbsp;&nbsp;善于应用、合理使用曝光补偿，可以大大改善你的摄影作品的成功率，拍出画面清晰，亮度合适，观看舒适的照片，提高拍摄质量。<br/>&nbsp;&nbsp;如果总结的不全，请补充。<br/>7、 开启屏幕上的网格线有何用途？（兼谈构图）<br/>首先说怎么开启屏幕的网格线显示，按MENU键，按下方向键数次到网格线，用左右方向键选择开，按MRNU键确定退出，就开启了网格线显示。<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;我们知道，0.618的黄金分割比例能给人美感。所以安排片中的兴趣点在4个焦点上，或在分割线上，就会给人视觉的美感。网格线就方便的给我们提供了这样的参照。<br/>&nbsp;&nbsp;除了以上注意黄金点构图外，还应注意以下几点：<br/>&nbsp;&nbsp;a、避免贯穿两边的直线，尤其要避免将照片分割成两部分的贯穿横线或竖线。<br/>&nbsp;&nbsp;b、地平线的处理。在风光作品里，地平线是经常出现的，为避免上下分割的效果，应设法打破地平线的平直，如利用云彩、远山、日出、日落或其它建筑物。此外，地平线的位置也应安排在趣味中心的分割线上，并且应保持水平（有特殊创意另当别论）。<br/>&nbsp;&nbsp;c、拍摄运动的物体要给运动的前方留有一定的空间。当被摄体是运动的，观赏者的目光会习惯性地沿被摄体运动方向移动，如果运动的前方没有空间会给人压迫感。此外，通常被摄体注视的方向也应留有相对较大的空间。<br/><br/>&nbsp;&nbsp;当然除了重视构图基本原则外，还应注意：<br/>&nbsp;&nbsp;a、 突出主体<br/>　在拍摄之前，心里要像绘画前那样首先“立意”，考虑照片画面中，主要表现什么，被摄主体安排在什么地方。然后通过光线、色彩、线条、形态等造型手段，来达到突出主体的目的。<br/>&nbsp;&nbsp;b、视觉平衡<br/>　　一幅构图达到视觉平衡的照片、能给人以稳定、协调的感觉。平衡有对称平衡及非对称平衡两种、非对称平衡的构图，往往比对称平衡的构图更富有动感。景物的大小、形状、重量和方向、以及色彩等都对视觉平衡有重要影响。<br/>&nbsp;&nbsp;c、虚实相映<br/>　　虚实是指被摄主体与空间前、后景的清晰、模糊的程度。运用的手法不外乎藏虚露实、虚实相间、虚宾实主、以虚托实。其目的是为了突出主体，渲染气氛，增强空间纵深感。实，主要是表现被摄对象的主体；虚、主要是表现被摄对象的陪体，以衬托主体，它是构成画面意境的重要环节。<br/>　　讲究节奏与旋律摄影构图，被摄对象以相同或近似的形式交替出现，有条理地重复，便形成节奏；节奏如果表现出线条、舒畅、和谐、起伏等动态变化，就成为旋律，从而使画面优美、抒情而流畅。节奏与旋律是深化主题的重要环节，它们包含在线条、色彩、光线的反差与色调中。<br/>d、线条运用<br/>　　线条是构图的骨架。任何形象化的作品，都离不开线条。通常起线条作用的有树、草、电线杆、河流、波浪等，不同的线条能给人以不同的视觉形象，如水平线能表示稳定和宁静，垂直线能表示庄重和力量，斜行线则具有生气，活力和动感，曲线和波浪线显得柔弱、悠闲，富有吸引力；浓线重，淡线轻，粗线强，细线弱，实线静，虚线动，构图时可灵活地加以运用。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8、怎样在图片中显示日期的印记？<br/>我们常常这么想，在片子中显示日期，冲洗出照片来就会有个清楚的时间印记,方便日后观看回忆。<br/>按功能键--下方向键--选择到分辨率（默认L的那项），右方向键选择最后一项明信片方式，然后按MENU键--下方向键--选择到日期标记--右方向键---选择日期和时间（或日期），按MENU键确定退出。<br/><br/>&nbsp;&nbsp; 拍一张试试，浏览看看是不是已经有了日期和时间？<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;后期处理的方法：安装佳能的自带软件，名字叫Z00MBrowser EX你把照片输进去，双击选定照片打开，再点工具栏的＂编辑＂，点里面有个＂插入文本＂，然后用鼠标在照片上想要注入日期的地方画个框，点里面有个＂导入日期／时间＂的按纽，日期／时间就自动上去了！<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;再说一下调整时间的方法。<br/>&nbsp;&nbsp;&nbsp;&nbsp;对于新拿来的相机，时间大都是2005年1月1号是出厂默认值，我们需要调整成正常的时间。<br/>&nbsp;&nbsp;&nbsp;&nbsp;方法：MENU键--左方向键按动一下--下方向键选择到时间和日期---然后按功能键（中间的那个键）<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这时就进入时间修改菜单了，上下方向键修改时间与日期，左右方向键选择项，修改完成后，最后一定要按动功能键（中间键，就是FUNC/SET键）确定，然后再按MENU键退出设定。<br/>&nbsp;&nbsp;&nbsp;&nbsp;经过这样设定的时间与日期就不会再回到出厂的默认值了。<br/>9、怎么让我的照片更漂亮？（兼谈数码照片的后期处理方法）<br/>请参看这儿：<a href="http://article.xitek.com/showarticle.php?id=1635" target="_blank">http://article.xitek.com/showarticle.php?id=1635</a><br/>&nbsp;&nbsp;&nbsp;&nbsp; 可能大家已经看过连接的地址了，想必也已经读完了关于后期处理的方法了。<br/>&nbsp;&nbsp; 我只说几个原则，方便大家理解。<br/>&nbsp;&nbsp; 1、调整色阶<br/>&nbsp;&nbsp; 对于佳能相机，成像感觉偏软，主要原因是色阶宽，容度大，有人说是缺点，大部分人认为是优点，利于后期处理。所以，当我们拍完片后，第一步要作的就是调整色阶。但自动调整色阶后，颜色会变化，一般手动调整。不过我比较懒，我的做法就是在PHOTOSHOP中调一次自动颜色就够了。 如果不满意，可以再调整曲线。<br/>&nbsp;&nbsp; 2、对于人像<br/>&nbsp;&nbsp;&nbsp;&nbsp; 接下来，可以点选人像，反选，然后高斯模糊背景。用图章工具将脸部色斑修掉，然后必要时可以作磨皮。磨皮，可以用Turbo&nbsp;&nbsp;picture的皮肤优化功能。<br/>&nbsp;&nbsp; 3、对于微距和风景<br/>&nbsp;&nbsp;&nbsp;&nbsp; 可以根据情况增加一点锐度，会使得图像更清晰锐利。还可以根据情况，选用正片效果。<br/>&nbsp;&nbsp;&nbsp;&nbsp;10、常用配件有哪些？怎么选择？<br/>a、存储卡<br/>&nbsp;&nbsp;&nbsp;&nbsp; 一般Kinston,或kingmax都不错，买时请格式化看看，一是察看兼容性，而是察看容量，512兆格后容量一般482-489，越大越好。容量少了说明储存电路坏的越多。最好60速以上。<br/>&nbsp;&nbsp;b、 充电电池套装<br/>&nbsp;&nbsp;&nbsp;&nbsp; 2200毫安、2300毫安，2500毫安都可以，以品胜、瑞能的较常见，也比较可靠。三洋的虽好，但价格太贵，不推荐。杂牌品质不能保证，不推荐。<br/>&nbsp;&nbsp;&nbsp;&nbsp; 还要带个塑料电池盒（1元一个），盛放原配的4节电池，方便外出，作电池的备用。<br/>&nbsp;&nbsp;c、三角架<br/>&nbsp;&nbsp;&nbsp;&nbsp; 不是专业摄影，买个一般的轻便的就可以了，伟峰330A、3301都可以。在微距及夜景时还是必须的设备。<br/>&nbsp;&nbsp;d、读卡器<br/>&nbsp;&nbsp;&nbsp;&nbsp; 只要是2.0的就行了，没什么技术，牌子不必讲究。<br/>&nbsp;&nbsp;e、带毛刷的气吹<br/>&nbsp;&nbsp;&nbsp;&nbsp; 清理灰尘要先用气吹吹，再刷。不要一上来就用纸，损坏镜头。不推荐用镜头液擦洗镜头或LCD，买到不可靠的产品没准洗坏镜头及屏幕。屏幕脏了，用丝绸沾一点水，轻轻擦拭就行了。<br/>&nbsp;&nbsp;&nbsp;&nbsp;11、太阳落山前或者阴天怎么拍摄？<br/>白天或者夜晚，都可以得到我们想要的效果，自动白平衡很准确。但只有太阳落山前后那段时间，或者阴云天气下，拍出的片子雾朦朦，很不理想。<br/>&nbsp;&nbsp; 经过试验得到如下经验，在这种情况下，需要调节白平衡，先扳到P档开始的手动档，按功能键，下方向键，选到AWB，然后选到阴天，按功能键确定退出。<br/>&nbsp;&nbsp; 再试试，是不是得到了我们想要的效果？如果还仍然不理想，请设置手动白平衡。<br/>12、怎么将测光或对焦的方框调到我们想要的位置？<br/>很简单，按动两次左上角的+-键，就会出现一个绿框，调节上下左右方向键到我们想要的位置，然后再按一次+-键确定退出就行了。<br/>&nbsp;&nbsp;&nbsp;&nbsp; 13、你的相机都做什么用？<br/>你肯定会告诉我，记录生活中精彩的一瞬，旅游纪念，以备以后回忆，个人一寸或2寸标准照，还有吗？<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp; 我常用微距在电子显微镜下拍物质结构图，我也常用它拍资料，比如，资料室中查到需要的资料，我就用它的微距功能，640*480分辨率，拍下来，比手记方便多了，再用文字识别软件，识别成文字版，便于word编辑。<br/>&nbsp;&nbsp; 还可以将需要传真的资料，拍下来，用电子邮件发出去，方便。<br/>&nbsp;&nbsp; 各位是怎么用的？<br/>&nbsp;&nbsp;&nbsp;&nbsp;14、为什么拍的照片不清楚？<br/>刚刚拿到相机的朋友常常出现的情况，试拍几张发现，照片不清楚。为什么？首先因为你没有对准焦距，你需要半按快门，在你需要拍的主体上出现绿框后，才是对焦准确，然后构图全按快门，这样拍出的片才是清楚的。<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;即使我们的操作熟练了，往往也会出现不了绿框（出现的是桔黄色框），一般这时光线较暗，你需要调整拍摄模式、变换角度、增加光线、打开闪光灯等方式来克服。<br/>&nbsp;&nbsp;如果以上方式都不见效，你还可以用手动调焦，手动调焦的方法我们在以前的贴子中介绍过了。<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;影响片子清晰，还有一个因素，就是手晃，出现重影，使得片子不清晰，这种情况，只能用三角架加自拍机来克服了。<br/>&nbsp;&nbsp;&nbsp;&nbsp; 15、我们怎么获得图片拍摄时的各种参数得以参考？<br/>对于别人比较满意片子总想知道在拍摄时是怎么设定各种参数的，比如，曝光时间多少？光圈多少？感光度、闪光灯怎么设定？测光方式，焦距，白平衡，拍摄时间，曝光补偿，压缩率，相机型号等等都想知道。<br/>&nbsp;&nbsp;非常容易，先下载一个浏览器下的插件exif，下载地址：<a href="http://www.onlinedown.net/soft/19388.htm" target="_blank">http://www.onlinedown.net/soft/19388.htm</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;然后安装，重新启动电脑。<br/>&nbsp;&nbsp;好了，可以用了。<br/>&nbsp;&nbsp;在浏览器上打开一幅图，右键单击这幅图，从出来的菜单中选择查看exif信息选项就行了，所有的信息都在那儿呢，看吧。<br/>16、如何判断曝光是否正确？<br/>对于一幅图，首先要求曝光准确，然后才是构图立意。<br/>&nbsp;&nbsp;怎么判断曝光准确呢？<br/>&nbsp;&nbsp;浏览模式，display，连按动几次会出现图像很小的模式， 左下是波浪线，右边参数。<br/>&nbsp;&nbsp;波浪线就是所说的直方图，波浪线集中在左边，图像曝光不足；波浪线集中在右边，过曝；均匀的分布在中间才是曝光准确。具体可以参看相机使用指南第19页。<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;我们需要养成一个观察直方图的习惯，特别是在暗处曝光把握不大的情况下。<br/>&nbsp;&nbsp;&nbsp;&nbsp;17、如何将图片调小？<br/>原图一般都比较大，不方便传到网上，或者与网友交流，怎么才能将图片调小呢？<br/>&nbsp;&nbsp;你可以用常用的看图软件acdsee，非常方便的作调整。<br/>&nbsp;&nbsp;用acdsee打开一张图片，点菜单上的修改---调整大小，然后在右边选择象素宽度填上你想改动的数值（比如800），然后长度像素自动变化，然后点完成，点菜单上文件--另存为，填上新名字就行了，再查看一下大小，是不是小了很多呢。<br/>&nbsp;&nbsp;&nbsp;&nbsp;18、点测光就是测定绿框中的一个点吗？<br/>其实这是对点测的误解。<br/>&nbsp;&nbsp;&nbsp;&nbsp;1、点测光。点测的面积大约占整个片的2-3%，基本就是绿框内的部分。点测光基本上不受测光区域外其它景物亮度的影响，因此，可以很方便地使用点测光对被摄体或背景的各个区域进行检测。点测光具有较高的灵敏度和精度。但不管怎样，一定要记住，要想实现准确曝光，测光对象应该适合18%灰的要求。<br/>&nbsp;&nbsp;&nbsp;&nbsp;2、中央重点平均。中央重点平均测光主要是测量取景屏画面中央长方形或圆形（椭圆形）范围内的亮度，画面其它区域则给以平均测光，长方形或圆形（椭圆形）范围外的亮度对测光结果的影响较小。至于中央面积的多少，因相机不同而异，约占全画面的20-30%。<br/>由于是依据画面中央最重要主体的光亮度来读取合适的曝光值，显然，这种测光系统的精度高于平均测光。中央重点测光系统一般用于中档小型数码相机，这种测光模式较适用于人像写真拍摄。<br/>&nbsp;&nbsp; 3、智能测光。九点智能就是分区测光，然后通过相机内的微电脑对各个区域的测光信息进行运算、比较，并参照被摄主体的位置，推测出被摄体的受光状态是逆光还是一般光照，从而决定每个区域的测光加权比重，全部衡量后，计算出合适的曝光值。<br/>怎样让我们的图片包含声音信息？<br/>我们可以在图片中放入声音的说明，比如，在旅游时拍片的感受、当时的气氛、所处地点等等图片视觉信息不能包容的信息，甚至可以做旅游的声音日记。给孩子拍片时录下孩子的声音。<br/>&nbsp;&nbsp; 怎么实现？<br/>&nbsp;&nbsp; 浏览模式下---按动MENU键--下方向键--声音纪录<br/>&nbsp;&nbsp; 然后左右键选择那个红的圆的录音键之后按动MENU键开始录音，录完之后按动MENU键停止,选择三角形的那个播放键用MENU键确定，可以回放生音。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 怎么在室内给孩子拍片？<br/>这种情况是稍稍麻烦点。<br/>&nbsp;&nbsp; 首先用光圈优先，将光圈调整到最大；其次布置光线，虽然不能用闪光灯，我们可以将孩子带到窗户旁比较明亮的地方，如果晚上我们可以用台灯等光；孩子常会乱动，可以考虑手动调焦，先将点测光锁定，将焦距调整好后，然后半按住快门移动步伐，等待孩子出现有趣的可爱的表情时快速按下快门。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;怎么对储存卡格式化？<br/>对于格式化，我们一般在买卡时用低级格式化，一是可以检测卡的兼容性，而可以察看卡的格后容量，格后容量越大越好。在拍片拍满，文件已经传到电脑，想清除掉卡上文件时最方便的方式就是一般格式化，方法：拍摄状态下，按动Menu，左方向键---下方向键选格式，按中间的功能键（Func)，用左方向键选到OK，按动FUNC功能键确定，就行了。<br/>&nbsp;&nbsp;&nbsp;&nbsp; 怎么做才能将背景虚化？<br/>消费类数码相机对于背景的虚化都做的不是特别理想。不过，我们在现有的条件下，仍然可以有所为。<br/>&nbsp;&nbsp; 首先光圈优先，光圈调整到最大（即F后面的数值最小，比如F2.8）；焦距调大，越大虚化越好；安排前景的人或物离的背景远一些，越远虚化越好；如果以上仍然不理想，可以通过后期处理的方法做的直到满意，在PS中点选背景，然后用模糊滤镜设定参数处理就行了。<br/>&nbsp;&nbsp; 现在背景虚化最好的ps技术是这样的，用knock out滤镜扣图，然后背景虚化用模糊镜头，效果逼真，据说相当于单反镜头。因为我一直用的是win98系统下的photoshop，没有这两个滤镜，也一直没有去尝试。请尝试过的朋友写一下操作指南，谢谢。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;怎样拍电视上的图？<br/>有时，我们看到电视上有精彩的图，自然想拍下来，怎么拍才能拍好呢？<br/>&nbsp;&nbsp; 电视的影像是由525根光线--扫描线，以大约1/25秒扫描全屏一遍的速度形成的（大约每秒25桢的速度刷新）。所以，在拍摄电视画面的时候，如果选用的快门速度不当的话，就会出现黑带，那是因为在曝光的一瞬间那里没有被扫描到。 为了不出现黑带，拍摄的时候选用的快门速度以1/8~1/15为宜，曝光应该使用快门优先模式。<br/>&nbsp;&nbsp;&nbsp;&nbsp;另外，如果不使用TVCC滤镜的话，拍摄下的照片颜色会偏青、偏冷。可以通过后期处理的方法得到调整。<br/>怎样给婴儿拍片？<br/>拍摄婴儿要记住，用婴儿感兴趣的东西吸引他，可以拍摄到更自然的表情。<br/>&nbsp;&nbsp;&nbsp;&nbsp;对初生的婴儿的眼睛来说闪光灯的光太强了，所以最好不使用闪光灯，可以调整感光度到200，并在顺光的情况下拍摄。最好把孩子抱到光线好的地方，如果天气不好，可以用台灯布光。如果一定要使用闪光灯，也不能让闪光灯直接对着孩子的眼睛，而最好在闪光灯上蒙上一块薄纸或纱布。<br/>&nbsp;&nbsp;&nbsp;&nbsp;婴儿的衣服以白色、浅色居多，所以在拍摄的时候如果用的是智能测光或中央平均，需要做曝光修正（+1），或者就用点测光测孩子的脸。而拍摄对焦的焦点应该在孩子的眼睛上。<br/>&nbsp;&nbsp;&nbsp;&nbsp;拍摄的距离，50厘米到150厘米为宜，最好用长焦。<br/>&nbsp;&nbsp;&nbsp;&nbsp;可以从不同角度观察孩子的脸，力求找到一个更好看的角度。<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;从旅游的车中拍摄应注意什么？<br/>我们旅游大多人都是选择组团旅游， 旅行的时候，在车内的时间也是旅行的一个重要组成部分，所以也可以成为很好的拍摄时间。同样的风景，从移动的车内拍与在车外拍，往往给人不同的感觉。在行驶的车内向外拍摄的时候，要注意以下几点：<br/>1、 在拍摄的时候，不要把手腕架在窗框或者座位的靠背上，因为车辆在行驶中总会有些震颤，这样很容易造成和手颤一样的虚像。<br/>2、 不要在阳光射入的窗口边拍摄，因为这样很容易在窗玻璃上有白衣服等等的反光。你可以要求临时换一下座位，拍完之后再回来。<br/>3、对于观光大巴来说，进行拍摄最合适的座位是最前面的座位。一是因为视野广，二是因为前面的玻璃经常清洗，所以最干净。而且前面的座位震颤也相对比后面的座位轻微一些。<br/>&nbsp;&nbsp;&nbsp;&nbsp; 拍宠物时应注意什么？<br/>注意以下几点：<br/>● 在拍摄小动物的时候，对焦的焦点一定要定在眼睛上。这是必须要注意的。<br/>● 相机的高度，应该是在和动物的视线的高度差不多的高度上，这是拍摄小动物的世界的基本姿势。如果是从比较高的高度俯拍，会有一种压迫感，小动物的可爱就会大打折扣--当然这只是说一般的情况下。<br/>● 为了表现毛的质感，最好使用自然光。直射光和顺光都不容易表现质感，最好是逆光拍摄，质感是最强烈的。当阴影太强的时候，可能会需要补光。在晚上补光的时候，要注意使用红眼消除功能。<br/>● 动物的警戒性很高，所以不能追着撵着拍。在拍摄的时候，动作要慢、要柔和，不能操之过急。如果有时间，要尽量获得动物的信任，以求尽量靠近拍摄。<br/>● 如果想拍摄比较好的表情，最好使用50~100mm的变焦。相当于我们的610/620的10.4--29.2段的变焦。<br/>● 作为宠物的猫和野外的猫，由于生活环境不同，所以性格上也有很大的不同。同时与周围的人的关系也是不同的。从野猫的视角看世界也是一个很好的摄影选题。当然在拍摄这种题材的时候，有时可能要使用到广角镜头，以更好的反映动物与周围环境的关系。<br/>片子究竟需要多大，才能充分保证冲洗相片的质量？<br/>目前普遍认为的对应尺寸是这样：<br/>500万像素 有效4915200，像素2560X1920。可冲洗照片尺寸17X13，对角线21英寸 <br/>400万像素 有效3871488，像素2272X1704。可冲洗照片尺寸15X11，对角线19英寸 <br/>300万像素 有效3145728，像素2048X1536。可冲洗照片尺寸14X10，对角线17英寸 <br/>200万像素 有效1920000，像素1600X1200。可冲洗照片尺寸11X8，对角线13英寸 <br/>130万像素 有效1228800，像素1280X960。可冲洗照片尺寸9X6，对角线11英寸 <br/>080万像素 有效786432，像素1024X768。可冲洗照片尺寸7X5，对角线9英寸 <br/>050万像素 有效480000，像素800X600。可冲洗照片尺寸5X4，对角线7英寸 <br/>030万像素 有效307200，像素640X480。可冲洗照片尺寸4X3，对角线5英寸 <br/>由上表可以看出： <br/>5寸照片（3.5X5），采用800X600分辨率就可以了 <br/>6寸照片（4X6），采用1024X768分辨率 <br/>7寸照片（5X7），采用1024X768分辨率 <br/>8寸照片（6X9），采用1280X960分辨率 <br/>但经过查证，以上是在冲洗相片输出180dpi的条件下所做的对应数码尺寸。对于现在的冲洗设备来说，比原来精细了很多，我们不能一直用180dpi的标准来洗相片，最好的已经到了300dpi。<br/>&nbsp;&nbsp; 记住公式：拍摄分辨率÷300dpi＝输出尺寸<br/>&nbsp;&nbsp; 最高质量冲洗照片与数码尺寸对照：<br/>&nbsp;&nbsp; 500万像素 有效4915200，像素2560X1920。可冲洗照片尺寸9X6，对角线11英寸<br/>&nbsp;&nbsp; 400万像素 有效3871488，像素2272X1704。可冲洗照片尺寸8X5，对角线10英寸 <br/>&nbsp;&nbsp;300万像素 有效3145728，像素2048X1536。可冲洗照片尺寸7X5，对角线9英寸 <br/>&nbsp;&nbsp;200万像素 有效1920000，像素1600X1200。可冲洗照片尺寸5X4，对角线7英寸<br/>&nbsp;&nbsp;&nbsp;&nbsp; 怎么拍瀑布？<br/>&nbsp;&nbsp; 先列出几个原则：<br/>&nbsp;&nbsp;1、快门速度，一般需要一个比较慢的速度，在1/60--1/10秒之间。具体还需要根据水量的大小，水量大快门可以快些，水量小快门可以慢些。<br/>&nbsp;&nbsp;2、尽量用广角拍。广角才会拍出气势。<br/>&nbsp;&nbsp;3、一般由下往上拍，尽量用低角度仰拍。<br/>&nbsp;&nbsp;4、正确曝光。用点测光来测试拍摄场景中最暗并且我能辨得清细节的地方，然后通过提高快门速度来调整两级光值。举个例子，如果测光显示石头的曝光组合是1/60s以及光圈f/5.6，你可以调到全手动档，其调整为1/15秒与光圈f/5.6。然后重新拍摄，拍出的照片会较黑，但细节部位仍是清楚的。<br/>拍集体人像的体会。<br/>咱们的A系列相机拍集体人像有点困难，如果想拍的更好一点，请注意以下几点：<br/>&nbsp;&nbsp;A、光圈优先模式用最佳光圈。最佳光圈不是最大也不是最小，一般是F5--7之间的光圈。<br/>&nbsp;&nbsp;B、变焦到10.4左右，即标准镜头50MM的位置最佳，变焦段共有9段8级，大约就是从广角调一下后的变焦。<br/>&nbsp;&nbsp;C、仰拍比俯拍好，但也不要太低，镜头最好与第一排人眼等高，除非有很多排。排数越多，景深要大一些。<br/>&nbsp;&nbsp;D、取景要尽量取满，一般相机取景器都有一点余量，冲印一般没问题，至少用底扫是没问题的，千万不要试图包含旁边或背后的景色，人占的画面较小，那不是集体合影的目的。<br/>&nbsp;&nbsp;E、顺光最好，因为集体照的要求和艺术照不一样，曝光准确，没人闭眼，没有遮挡，表情自然就算非常成功了，稍有一点不自然也算可以。侧光容易产生互相之间的阴影，逆光如果按面部曝光，背景和边缘会过曝严重，细节也会有损失。室外以薄云或多云天气为宜，太强的阳光会产生眯眼和皱眉。室内没拍过，布光当然比阳光下自由一些。靠反光板补光不现实，不用考虑。<br/>&nbsp;&nbsp;F、要根据人衣服颜色进行曝光补偿<br/>&nbsp;&nbsp;G、最好用三角架。<br/>&nbsp;&nbsp;H、多照几张，难免有人会眨眼。姿势摆布力求自然，不要象政治局常委。<br/>&nbsp;&nbsp;I、对焦对在靠近相机1/3人群处。有4、5排对在2排，2、3排对在1排。<br/>&nbsp;&nbsp;&nbsp;&nbsp; 拍花的技巧<br/>&nbsp;&nbsp; 对于拍花要讲究点技巧才能拍得好看，我们以前说过要在拍之前喷点水可以增加花的层次感以及娇翠欲滴的感觉，此外还应注意以下几点：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>1、测光方式最好用点测光，测花最亮的部分，使得花整体细节都能表现清楚。<br/>2、拍摄模式最好光圈优先，可以适当控制背景的虚化或者控制景深。<br/>3、拍摄角度，不要只拍正面，可同时拍不同角度的7、8张片。从而可以选择最漂亮的角度。<br/>4、背景。选择背景是深色（如很浓密的树叶、深色墙等）的花作为拍摄的对象。<br/>&nbsp;&nbsp;&nbsp;&nbsp;用一大块黑色的布摆在花的背后，离花要远一点，近了要看见布纹。黑布摆的方法，可以直接平放在地上，也可以挂在花的背后，也可以把黑布蒙在一块板上立在花的背后。<br/>&nbsp;&nbsp;&nbsp;&nbsp;后期制作时，在Ｐhotoshop里把背景色做（换）成黑色或其他的色。<br/>&nbsp;&nbsp;&nbsp;&nbsp;如何拍好水景<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;摄影者常坐船在江河湖海上尽情游玩，拍摄水景同样是一件饶有趣味的活动，但也有其独特的拍摄要求。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一般拍水景时，不能曝光不足。因为自然界的水源常常受到天空的映衬，有强烈的反光，宛如一个巨大的发光体一般。拍摄时如仅依靠相机的测光指示来处理曝光量，常常会出现曝光不足，这是因为天空与一般景物的亮度相差非常大。拍摄具有天空反光的水景时，至少需按照相机测光指示再加2挡左右的曝光量。拍摄波光舟影的画面要讲究用光，根据画面中的明暗关系来突出被摄对象的主体。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为使拍摄的水景有特殊效果。一种方法是采用高速快门，比如1/1000秒以上来凝结运动的水，如海浪等。取景合适、曝光得当的话，可能获得喷珠溅玉般的效果，我们在一些表现海浪的摄影作品中常可以看到类似手法。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;另一种方法是借助慢速快门获得画面中流水虚幻迷茫的效果。这种方法拍摄的照片艺术特点非常鲜明，流水常呈现出宛如云霞的缥缈感。附图拍摄于江西某村口，这个地方实际上并不十分出色，但通过慢速快门的作用，小溪的流水有了新的魅力，使原来很平常的一幅山村小景变得富有趣味。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;必须指出的是，要反映出流水的运动感，需要根据流水的速度缓急来选择快门速度，水流的速度快，所选快门速度宜高，水流速度慢，选择的快门速度就应低一些。在选择低速快门时，最好使用三脚架来稳住相机，以免晃动相机影响画面的清晰度。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果有长焦镜头，还可利用其压缩空间的特性来拍摄水的波纹，当波浪经长焦镜头压缩后，会呈现出非常有韵律的线条，妙不可言。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对焦时遇到的问题<br/>A、 暗处对焦困难怎么办？<br/>&nbsp;&nbsp;&nbsp;&nbsp; A系列相机在暗处使用时对焦比较困难，首先要保证开启自动对焦辅助光，并且保证你的右手没有阻挡这个光（光源在前面取景框的右边）。然后对焦框不要全部充满单一的颜色，可以试着包括进一个边缘，比如拍人像时，对准了脸部，可以再侧一侧，在对焦框中出现脸边，也就是框内除了脸还有脸部外的空间。这是基于对焦原理来做的，因为对焦对相机来说，有一个累积浓淡比运算过程。<br/>&nbsp;&nbsp;&nbsp;&nbsp; 这样对焦就比较容易了。<br/>B、 自拍时怎么对焦？<br/>&nbsp;&nbsp;&nbsp;&nbsp; 自拍时可以启动自拍机，但怎么对焦呢？很简单，用手动对焦，手动对焦的方法前面已经说过了，需要再讲讲此时怎么曝光，找跟脸部颜色相近的物体，对准之后曝光锁定。<br/>&nbsp;&nbsp;&nbsp;&nbsp; 要注意顺序，先手动调焦，再曝光锁定，然后按动下快门。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/default.asp?id=311" /> 
	  <id>http://www.xiqiu.cn/blog/default.asp?id=311</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[静态网页加密]]></title>
	  <author>
		 <name>洗秋</name>
		 <uri>http://www.xiqiu.cn/blog/</uri>
		 <email>洗秋杂语</email>
	  </author>
	  <category term="" scheme="http://www.xiqiu.cn/blog/default.asp?cateID=14" label="学习" /> 
	  <updated>2006-06-28T15:51:52+08:00</updated>
	  <published>2006-06-28T15:51:52+08:00</published>
		  <summary type="html"><![CDATA[思路：加密时，先把用户的密钥A用md5加密为B,然后用B异或源文件S0得到目标文件S1，把S1存入js变量中。解密时询问密钥，然后操作同加密。因为用了md5，个人认为没有密钥的时候是无法破解的（暴力除外）<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xiqiu.cn/blog/images/html.gif" style="margin:0px 2px -3px 0px"> HTML代码</div><div class="UBBContent"><TEXTAREA rows="8" id="temp9792"><html>
<head>
<title>Web Encoder</title>
<style>
body {
	font-size:12px;
	line-height:12px;
	background-Color:buttonface;
	border-width:0px;
	overflow:auto;
	margin:0px;
	padding:4px;
}

#t1, #t2 {
	width:100%;
	height:40%;
	border-width:1px;
	overflow:auto;
	height:e&#173;xpression((document.body.clientHeight-100)/2);
}

input {
	border-width:1px;
	padding-left:10px;
	padding-right:10px;
	margin:4px;
}
</style>
<script>
function webEncode(){
	strSource=escape(XOR(t1.value,STR.md5(p1.value)));
	//strSource=t1.value;
	strOut=&#34;<script>\r\nstrHTML=\&#34;\&#34;;\r\n&#34;;
	for(var i=0;i+70<strSource.length;i+=70){
		strOut+=&#34;strHTML+=\&#34;&#34;+addSlash(strSource.substring(i,i+70))+&#34;\&#34;;\r\n&#34;;
	}
	strOut+=&#34;strHTML+=\&#34;&#34;+addSlash(strSource.substring(i,strSource.length))+&#34;\&#34;;\r\n&#34;;
	strOut+=XOR+&#34;\r\n&#34;;
	
	//below code load the STR object
	strOut+=&#34;var STR =\r\n{\r\n\thexcase : 0,  \/* hex output format. 0 - lowercase; 1 - &#34;;
	strOut+=&#34;uppercase        *\/\r\n\tb64pad  : \&#34;\&#34;, \/* base-64 pad character. \&#34;=\&#34; for &#34;;
	strOut+=&#34;strict RFC compliance   *\/\r\n\tchrsz   : 8,  \/* bits per input character&#34;;
	strOut+=&#34;. 8 - ASCII; 16 - Unicode      *\/\r\n\t\r\n\tb64_hmac_md5:\r\n\t\tfunction(key, &#34;;
	strOut+=&#34;data) { return binl2b64(core_hmac_md5(key, data)); },\r\n\t\t\r\n\tb64_md5:\r\n&#34;;
	strOut+=&#34;\t\tfunction(s){ return binl2b64(core_md5(str2binl(s), s.length * this.c&#34;;
	strOut+=&#34;hrsz));},\r\n\t\t\r\n\tbinl2b64:\r\n\t\tfunction(binarray){\r\n\t\t  var tab = \&#34;ABCDE&#34;;
	strOut+=&#34;FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/\&#34;;\r\n\t\t  var&#34;;
	strOut+=&#34; str = \&#34;\&#34;;\r\n\t\t  for(var i = 0; i < binarray.length * 4; i += 3)\r\n\t\t  {&#34;;
	strOut+=&#34;\r\n\t\t    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) &amp; 0xFF) &#34;;
	strOut+=&#34;<< 16)\r\n\t\t                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) &amp; &#34;;
	strOut+=&#34;0xFF) << 8 )\r\n\t\t                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%&#34;;
	strOut+=&#34;4)) &amp; 0xFF);\r\n\t\t    for(var j = 0; j < 4; j++)\r\n\t\t    {\r\n\t\t      if(i &#34;;
	strOut+=&#34;* 8 + j * 6 > binarray.length * 32) str += this.b64pad;\r\n\t\t      else &#34;;
	strOut+=&#34;str += tab.charAt((triplet >> 6*(3-j)) &amp; 0x3F);\r\n\t\t    }\r\n\t\t  }\r\n\t\t  r&#34;;
	strOut+=&#34;eturn str;\r\n\t\t},\r\n\t\t\r\n\tbinl2hex:\r\n\t\tfunction(binarray){\r\n\t\t  var hex_t&#34;;
	strOut+=&#34;ab = this.hexcase ? \&#34;0123456789ABCDEF\&#34; : \&#34;0123456789abcdef\&#34;;\r\n\t\t  var &#34;;
	strOut+=&#34;str = \&#34;\&#34;;\r\n\t\t  for(var i = 0; i < binarray.length * 4; i++)\r\n\t\t  {\r\n\t\t&#34;;
	strOut+=&#34;    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) &amp; 0xF) +\r\n\t\t&#34;;
	strOut+=&#34;           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) &amp; 0xF);\r\n\t\t &#34;;
	strOut+=&#34; }\r\n\t\t  return str;\r\n\t\t},\r\n\t\r\n\tbinl2str:\r\n\t\tfunction(bin){\r\n\t\t  var st&#34;;
	strOut+=&#34;r = \&#34;\&#34;;\r\n\t\t  var mask = (1 << this.chrsz) - 1;\r\n\t\t  for(var i = 0; i <&#34;;
	strOut+=&#34; bin.length * 32; i += this.chrsz)\r\n\t\t    str += String.fromCharCode((&#34;;
	strOut+=&#34;bin[i>>5] >>> (i % 32)) &amp; mask);\r\n\t\t  return str;\r\n\t\t},\r\n\t\t\r\n\tbit_rol:&#34;;
	strOut+=&#34;\r\n\t\tfunction(num, cnt){return (num << cnt) | (num >>> (32 - cnt));},\r\n&#34;;
	strOut+=&#34;\t\t\r\n\tcore_hmac_md5:\r\n\t\tfunction(key, data){\r\n\t\t  var bkey = str2binl(k&#34;;
	strOut+=&#34;ey);\r\n\t\t  if(bkey.length > 16) bkey = core_md5(bkey, key.length * this&#34;;
	strOut+=&#34;.chrsz);\r\n\t\t\r\n\t\t  var ipad = Array(16), opad = Array(16);\r\n\t\t  for(var&#34;;
	strOut+=&#34; i = 0; i < 16; i++)\r\n\t\t  {\r\n\t\t    ipad[i] = bkey[i] ^ 0x36363636;\r\n\t\t&#34;;
	strOut+=&#34;    opad[i] = bkey[i] ^ 0x5C5C5C5C;\r\n\t\t  }\r\n\t\t\r\n\t\t  var hash = core_md&#34;;
	strOut+=&#34;5(ipad.concat(str2binl(data)), 512 + data.length * this.chrsz);\r\n\t\t  r&#34;;
	strOut+=&#34;eturn core_md5(opad.concat(hash), 512 + 128);\r\n\t\t},\r\n\t\t\r\n\tcore_md5:\r\n\t&#34;;
	strOut+=&#34;\tfunction(x, len){\r\n\t\t  \/* append padding *\/\r\n\t\t  x[len >> 5] |= 0x80 &#34;;
	strOut+=&#34;<< ((len) % 32);\r\n\t\t  x[(((len + 64) >>> 9) << 4) + 14] = len;\r\n\t\t\r\n\t\t&#34;;
	strOut+=&#34;  var a =  1732584193;\r\n\t\t  var b = -271733879;\r\n\t\t  var c = -17325841&#34;;
	strOut+=&#34;94;\r\n\t\t  var d =  271733878;\r\n\t\t\r\n\t\t  for(var i = 0; i < x.length; i +&#34;;
	strOut+=&#34;= 16)\r\n\t\t  {\r\n\t\t    var olda = a;\r\n\t\t    var oldb = b;\r\n\t\t    var oldc&#34;;
	strOut+=&#34; = c;\r\n\t\t    var oldd = d;\r\n\t\t\r\n\t\t    a = this.md5_ff(a, b, c, d, x[i+&#34;;
	strOut+=&#34; 0], 7 , -680876936);\r\n\t\t    d = this.md5_ff(d, a, b, c, x[i+ 1], 12, &#34;;
	strOut+=&#34;-389564586);\r\n\t\t    c = this.md5_ff(c, d, a, b, x[i+ 2], 17,  60610581&#34;;
	strOut+=&#34;9);\r\n\t\t    b = this.md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);\r\n\t\t &#34;;
	strOut+=&#34;   a = this.md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);\r\n\t\t    d = th&#34;;
	strOut+=&#34;is.md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);\r\n\t\t    c = this.md5_f&#34;;
	strOut+=&#34;f(c, d, a, b, x[i+ 6], 17, -1473231341);\r\n\t\t    b = this.md5_ff(b, c, &#34;;
	strOut+=&#34;d, a, x[i+ 7], 22, -45705983);\r\n\t\t    a = this.md5_ff(a, b, c, d, x[i+&#34;;
	strOut+=&#34; 8], 7 ,  1770035416);\r\n\t\t    d = this.md5_ff(d, a, b, c, x[i+ 9], 12,&#34;;
	strOut+=&#34; -1958414417);\r\n\t\t    c = this.md5_ff(c, d, a, b, x[i+10], 17, -42063)&#34;;
	strOut+=&#34;;\r\n\t\t    b = this.md5_ff(b, c, d, a, x[i+11], 22, -1990404162);\r\n\t\t   &#34;;
	strOut+=&#34; a = this.md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);\r\n\t\t    d = thi&#34;;
	strOut+=&#34;s.md5_ff(d, a, b, c, x[i+13], 12, -40341101);\r\n\t\t    c = this.md5_ff(c&#34;;
	strOut+=&#34;, d, a, b, x[i+14], 17, -1502002290);\r\n\t\t    b = this.md5_ff(b, c, d, &#34;;
	strOut+=&#34;a, x[i+15], 22,  1236535329);\r\n\t\t\r\n\t\t    a = this.md5_gg(a, b, c, d, x&#34;;
	strOut+=&#34;[i+ 1], 5 , -165796510);\r\n\t\t    d = this.md5_gg(d, a, b, c, x[i+ 6], 9&#34;;
	strOut+=&#34; , -1069501632);\r\n\t\t    c = this.md5_gg(c, d, a, b, x[i+11], 14,  6437&#34;;
	strOut+=&#34;17713);\r\n\t\t    b = this.md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);\r\n&#34;;
	strOut+=&#34;\t\t    a = this.md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);\r\n\t\t    d =&#34;;
	strOut+=&#34; this.md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);\r\n\t\t    c = this.md5_&#34;;
	strOut+=&#34;gg(c, d, a, b, x[i+15], 14, -660478335);\r\n\t\t    b = this.md5_gg(b, c, &#34;;
	strOut+=&#34;d, a, x[i+ 4], 20, -405537848);\r\n\t\t    a = this.md5_gg(a, b, c, d, x[i&#34;;
	strOut+=&#34;+ 9], 5 ,  568446438);\r\n\t\t    d = this.md5_gg(d, a, b, c, x[i+14], 9 ,&#34;;
	strOut+=&#34; -1019803690);\r\n\t\t    c = this.md5_gg(c, d, a, b, x[i+ 3], 14, -187363&#34;;
	strOut+=&#34;961);\r\n\t\t    b = this.md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);\r\n\t&#34;;
	strOut+=&#34;\t    a = this.md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);\r\n\t\t    d =&#34;;
	strOut+=&#34; this.md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);\r\n\t\t    c = this.md5_&#34;;
	strOut+=&#34;gg(c, d, a, b, x[i+ 7], 14,  1735328473);\r\n\t\t    b = this.md5_gg(b, c,&#34;;
	strOut+=&#34; d, a, x[i+12], 20, -1926607734);\r\n\t\t\r\n\t\t    a = this.md5_hh(a, b, c, &#34;;
	strOut+=&#34;d, x[i+ 5], 4 , -378558);\r\n\t\t    d = this.md5_hh(d, a, b, c, x[i+ 8], &#34;;
	strOut+=&#34;11, -2022574463);\r\n\t\t    c = this.md5_hh(c, d, a, b, x[i+11], 16,  183&#34;;
	strOut+=&#34;9030562);\r\n\t\t    b = this.md5_hh(b, c, d, a, x[i+14], 23, -35309556);\r&#34;;
	strOut+=&#34;\n\t\t    a = this.md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);\r\n\t\t    d&#34;;
	strOut+=&#34; = this.md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);\r\n\t\t    c = this.&#34;;
	strOut+=&#34;md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);\r\n\t\t    b = this.md5_hh(b,&#34;;
	strOut+=&#34; c, d, a, x[i+10], 23, -1094730640);\r\n\t\t    a = this.md5_hh(a, b, c, d&#34;;
	strOut+=&#34;, x[i+13], 4 ,  681279174);\r\n\t\t    d = this.md5_hh(d, a, b, c, x[i+ 0]&#34;;
	strOut+=&#34;, 11, -358537222);\r\n\t\t    c = this.md5_hh(c, d, a, b, x[i+ 3], 16, -72&#34;;
	strOut+=&#34;2521979);\r\n\t\t    b = this.md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);\r&#34;;
	strOut+=&#34;\n\t\t    a = this.md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);\r\n\t\t    d &#34;;
	strOut+=&#34;= this.md5_hh(d, a, b, c, x[i+12], 11, -421815835);\r\n\t\t    c = this.md&#34;;
	strOut+=&#34;5_hh(c, d, a, b, x[i+15], 16,  530742520);\r\n\t\t    b = this.md5_hh(b, c&#34;;
	strOut+=&#34;, d, a, x[i+ 2], 23, -995338651);\r\n\t\t\r\n\t\t    a = this.md5_ii(a, b, c, &#34;;
	strOut+=&#34;d, x[i+ 0], 6 , -198630844);\r\n\t\t    d = this.md5_ii(d, a, b, c, x[i+ 7&#34;;
	strOut+=&#34;], 10,  1126891415);\r\n\t\t    c = this.md5_ii(c, d, a, b, x[i+14], 15, -&#34;;
	strOut+=&#34;1416354905);\r\n\t\t    b = this.md5_ii(b, c, d, a, x[i+ 5], 21, -57434055&#34;;
	strOut+=&#34;);\r\n\t\t    a = this.md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);\r\n\t\t  &#34;;
	strOut+=&#34;  d = this.md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);\r\n\t\t    c = th&#34;;
	strOut+=&#34;is.md5_ii(c, d, a, b, x[i+10], 15, -1051523);\r\n\t\t    b = this.md5_ii(b&#34;;
	strOut+=&#34;, c, d, a, x[i+ 1], 21, -2054922799);\r\n\t\t    a = this.md5_ii(a, b, c, &#34;;
	strOut+=&#34;d, x[i+ 8], 6 ,  1873313359);\r\n\t\t    d = this.md5_ii(d, a, b, c, x[i+1&#34;;
	strOut+=&#34;5], 10, -30611744);\r\n\t\t    c = this.md5_ii(c, d, a, b, x[i+ 6], 15, -1&#34;;
	strOut+=&#34;560198380);\r\n\t\t    b = this.md5_ii(b, c, d, a, x[i+13], 21,  130915164&#34;;
	strOut+=&#34;9);\r\n\t\t    a = this.md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);\r\n\t\t  &#34;;
	strOut+=&#34;  d = this.md5_ii(d, a, b, c, x[i+11], 10, -1120210379);\r\n\t\t    c = th&#34;;
	strOut+=&#34;is.md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);\r\n\t\t    b = this.md5_ii&#34;;
	strOut+=&#34;(b, c, d, a, x[i+ 9], 21, -343485551);\r\n\t\t\r\n\t\t    a = this.safe_add(a,&#34;;
	strOut+=&#34; olda);\r\n\t\t    b = this.safe_add(b, oldb);\r\n\t\t    c = this.safe_add(c,&#34;;
	strOut+=&#34; oldc);\r\n\t\t    d = this.safe_add(d, oldd);\r\n\t\t  }\r\n\t\t  return Array(a,&#34;;
	strOut+=&#34; b, c, d);\r\n\t\t},\r\n\t\t\r\n\thex_hmac_md5:function(key, data){ return this.b&#34;;
	strOut+=&#34;inl2hex(this.core_hmac_md5(key, data)); },\r\n\t\r\n\thex_md5:function(s){re&#34;;
	strOut+=&#34;turn this.binl2hex(this.core_md5(this.str2binl(s), s.length * this.chr&#34;;
	strOut+=&#34;sz));},\r\n\t\r\n\tmd5:function(s){return(this.hex_md5(s));},\r\n\r\n\tmd5_cmn:fu&#34;;
	strOut+=&#34;nction(q, a, b, x, s, t){return this.safe_add(this.bit_rol(this.safe_a&#34;;
	strOut+=&#34;dd(this.safe_add(a, q), this.safe_add(x, t)), s),b);},\r\n\r\n\tmd5_ff:func&#34;;
	strOut+=&#34;tion(a, b, c, d, x, s, t){return this.md5_cmn((b &amp; c) | ((~b) &amp; d), a,&#34;;
	strOut+=&#34; b, x, s, t);},\r\n\r\n\tmd5_gg:function(a, b, c, d, x, s, t){return this.m&#34;;
	strOut+=&#34;d5_cmn((b &amp; d) | (c &amp; (~d)), a, b, x, s, t);},\r\n\r\n\tmd5_hh:function(a, &#34;;
	strOut+=&#34;b, c, d, x, s, t){return this.md5_cmn(b ^ c ^ d, a, b, x, s, t);},\r\n\r\n&#34;;
	strOut+=&#34;\tmd5_ii:function(a, b, c, d, x, s, t){return this.md5_cmn(c ^ (b | (~d&#34;;
	strOut+=&#34;)), a, b, x, s, t);},\r\n\r\n\tmd5_vm_test:function(){return hex_md5(\&#34;abc\&#34;)&#34;;
	strOut+=&#34; == \&#34;900150983cd24fb0d6963f7d28e17f72\&#34;;},\r\n\t\r\n\tsafe_add:\r\n\t\tfunction(x&#34;;
	strOut+=&#34;, y){\r\n\t\t  var lsw = (x &amp; 0xFFFF) + (y &amp; 0xFFFF);\r\n\t\t  var msw = (x >>&#34;;
	strOut+=&#34; 16) + (y >> 16) + (lsw >> 16);\r\n\t\t  return (msw << 16) | (lsw &amp; 0xFFF&#34;;
	strOut+=&#34;F);\r\n\t\t},\r\n\t\t\r\n\tstr2binl:\r\n\t\tfunction(str){\r\n\t\t  var bin = Array();\r\n\t&#34;;
	strOut+=&#34;\t  var mask = (1 << this.chrsz) - 1;\r\n\t\t  for(var i = 0; i < str.lengt&#34;;
	strOut+=&#34;h * this.chrsz; i += this.chrsz)\r\n\t\t    bin[i>>5] |= (str.charCodeAt(i&#34;;
	strOut+=&#34; \/ this.chrsz) &amp; mask) << (i%32);\r\n\t\t  return bin;\r\n\t\t},\r\n\r\n\tstr_hmac_&#34;;
	strOut+=&#34;md5:function(key, data){ return binl2str(core_hmac_md5(key, data)); },&#34;;
	strOut+=&#34;\r\n\r\n\tstr_md5:function(s){ return binl2str(core_md5(str2binl(s), s.leng&#34;;
	strOut+=&#34;th * this.chrsz));}\r\n}\r\n&#34;;
	
	strOut+=performPage+&#34;\r\n&#34;;
	strOut+=&#34;performPage();\r\n&#34;;
	strOut+=&#34;<\/script>&#34;;
	t2.value=strOut;
}

function runCode(){
	win=open(&#34;about:blank&#34;);
	win.document.write(t2.value);
	win.document.close();
}

function addSlash(str){
	return(str).replace(/\\/g,&#34;\\\\&#34;).replace(/\//g,&#34;\\\/&#34;).replace(/\r/g,&#34;\\r&#34;).replace(/\n/g,&#34;\\n&#34;).replace(/\&#34;/g,&#34;\\\&#34;&#34;).replace(/\'/g,&#34;\\\'&#34;).replace(/\t/g,&#34;\\t&#34;);
}

function XOR(strV,strPass){
	var intPassLength=strPass.length;
	var re=&#34;&#34;;
	for(var i=0;i<strV.length;i++){
		re+=String.fromCharCode(strV.charCodeAt(i)^strPass.charCodeAt(i%intPassLength));
	}
	return(re);
}

function performPage(strPass){
	if(strPass){
		document.cookie=&#34;password=&#34;+escape(strPass);
		document.write(XOR(unescape(strHTML),STR.md5(strPass)));
		return(false);
	}
	//**********如果需要自动记住密码，请将下面的注释改成代码
	/*
	var pass=document.cookie.match(/password=([^;]+)/i);
	if(pass){
		pass=unescape(pass[1]);
		document.write(XOR(unescape(strHTML),STR.md5(pass)));
		return(false);
	}
	*/
	//*************
	strAskPass=&#34;<table cellspacing=0 cellpadding=0 width=100% height=100% align=center valign=middle><tr><td> </td><td align=center>&#34;;
	strAskPass+=&#34;<b>Password:</b><input style=\&#34;border-width:1px;\&#34; type=password id=ps01 onkeydown=\&#34;if(event.keyCode==13){performPage(this.value);}\&#34;>&#34;;
	strAskPass+=&#34;<input style=\&#34;border-width:1px;\&#34; type=button onclick=\&#34;performPage(ps01.value);\&#34; value=Enter></td><td> </td></tr></table>&#34;;
	document.write(strAskPass);
}

var STR =
{
	hexcase : 0,  /* hex output format. 0 - lowercase; 1 - uppercase        */
	b64pad  : &#34;&#34;, /* base-64 pad character. &#34;=&#34; for strict RFC compliance   */
	chrsz   : 8,  /* bits per input character. 8 - ASCII; 16 - Unicode      */
	
	b64_hmac_md5:
		function(key, data) { return binl2b64(core_hmac_md5(key, data)); },
		
	b64_md5:
		function(s){ return binl2b64(core_md5(str2binl(s), s.length * this.chrsz));},
		
	binl2b64:
		function(binarray){
		  var tab = &#34;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&#34;;
		  var str = &#34;&#34;;
		  for(var i = 0; i < binarray.length * 4; i += 3)
		  {
		    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) &amp; 0xFF) << 16)
		                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) &amp; 0xFF) << 8 )
		                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) &amp; 0xFF);
		    for(var j = 0; j < 4; j++)
		    {
		      if(i * 8 + j * 6 > binarray.length * 32) str += this.b64pad;
		      else str += tab.charAt((triplet >> 6*(3-j)) &amp; 0x3F);
		    }
		  }
		  return str;
		},
		
	binl2hex:
		function(binarray){
		  var hex_tab = this.hexcase ? &#34;0123456789ABCDEF&#34; : &#34;0123456789abcdef&#34;;
		  var str = &#34;&#34;;
		  for(var i = 0; i < binarray.length * 4; i++)
		  {
		    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) &amp; 0xF) +
		           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) &amp; 0xF);
		  }
		  return str;
		},
	
	binl2str:
		function(bin){
		  var str = &#34;&#34;;
		  var mask = (1 << this.chrsz) - 1;
		  for(var i = 0; i < bin.length * 32; i += this.chrsz)
		    str += String.fromCharCode((bin[i>>5] >>> (i % 32)) &amp; mask);
		  return str;
		},
		
	bit_rol:
		function(num, cnt){return (num << cnt) | (num >>> (32 - cnt));},
		
	core_hmac_md5:
		function(key, data){
		  var bkey = str2binl(key);
		  if(bkey.length > 16) bkey = core_md5(bkey, key.length * this.chrsz);
		
		  var ipad = Array(16), opad = Array(16);
		  for(var i = 0; i < 16; i++)
		  {
		    ipad[i] = bkey[i] ^ 0x36363636;
		    opad[i] = bkey[i] ^ 0x5C5C5C5C;
		  }
		
		  var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * this.chrsz);
		  return core_md5(opad.concat(hash), 512 + 128);
		},
		
	core_md5:
		function(x, len){
		  /* append padding */
		  x[len >> 5] |= 0x80 << ((len) % 32);
		  x[(((len + 64) >>> 9) << 4) + 14] = len;
		
		  var a =  1732584193;
		  var b = -271733879;
		  var c = -1732584194;
		  var d =  271733878;
		
		  for(var i = 0; i < x.length; i += 16)
		  {
		    var olda = a;
		    var oldb = b;
		    var oldc = c;
		    var oldd = d;
		
		    a = this.md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
		    d = this.md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
		    c = this.md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);
		    b = this.md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
		    a = this.md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
		    d = this.md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);
		    c = this.md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
		    b = this.md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
		    a = this.md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
		    d = this.md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
		    c = this.md5_ff(c, d, a, b, x[i+10], 17, -42063);
		    b = this.md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
		    a = this.md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);
		    d = this.md5_ff(d, a, b, c, x[i+13], 12, -40341101);
		    c = this.md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
		    b = this.md5_ff(b, c, d, a, x[i+15], 22,  1236535329);
		
		    a = this.md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
		    d = this.md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
		    c = this.md5_gg(c, d, a, b, x[i+11], 14,  643717713);
		    b = this.md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
		    a = this.md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
		    d = this.md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);
		    c = this.md5_gg(c, d, a, b, x[i+15], 14, -660478335);
		    b = this.md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
		    a = this.md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
		    d = this.md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
		    c = this.md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
		    b = this.md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);
		    a = this.md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
		    d = this.md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
		    c = this.md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);
		    b = this.md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
		
		    a = this.md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
		    d = this.md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
		    c = this.md5_hh(c, d, a, b, x[i+11], 16,  1839030562);
		    b = this.md5_hh(b, c, d, a, x[i+14], 23, -35309556);
		    a = this.md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
		    d = this.md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);
		    c = this.md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
		    b = this.md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
		    a = this.md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);
		    d = this.md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
		    c = this.md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
		    b = this.md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);
		    a = this.md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
		    d = this.md5_hh(d, a, b, c, x[i+12], 11, -421815835);
		    c = this.md5_hh(c, d, a, b, x[i+15], 16,  530742520);
		    b = this.md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
		
		    a = this.md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
		    d = this.md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);
		    c = this.md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
		    b = this.md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
		    a = this.md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);
		    d = this.md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
		    c = this.md5_ii(c, d, a, b, x[i+10], 15, -1051523);
		    b = this.md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
		    a = this.md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
		    d = this.md5_ii(d, a, b, c, x[i+15], 10, -30611744);
		    c = this.md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
		    b = this.md5_ii(b, c, d, a, x[i+13], 21,  1309151649);
		    a = this.md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
		    d = this.md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
		    c = this.md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);
		    b = this.md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
		
		    a = this.safe_add(a, olda);
		    b = this.safe_add(b, oldb);
		    c = this.safe_add(c, oldc);
		    d = this.safe_add(d, oldd);
		  }
		  return Array(a, b, c, d);
		},
		
	hex_hmac_md5:function(key, data){ return this.binl2hex(this.core_hmac_md5(key, data)); },
	
	hex_md5:function(s){return this.binl2hex(this.core_md5(this.str2binl(s), s.length * this.chrsz));},
	
	md5:function(s){return(this.hex_md5(s));},

	md5_cmn:function(q, a, b, x, s, t){return this.safe_add(this.bit_rol(this.safe_add(this.safe_add(a, q), this.safe_add(x, t)), s),b);},

	md5_ff:function(a, b, c, d, x, s, t){return this.md5_cmn((b &amp; c) | ((~b) &amp; d), a, b, x, s, t);},

	md5_gg:function(a, b, c, d, x, s, t){return this.md5_cmn((b &amp; d) | (c &amp; (~d)), a, b, x, s, t);},

	md5_hh:function(a, b, c, d, x, s, t){return this.md5_cmn(b ^ c ^ d, a, b, x, s, t);},

	md5_ii:function(a, b, c, d, x, s, t){return this.md5_cmn(c ^ (b | (~d)), a, b, x, s, t);},

	md5_vm_test:function(){return hex_md5(&#34;abc&#34;) == &#34;900150983cd24fb0d6963f7d28e17f72&#34;;},
	
	safe_add:
		function(x, y){
		  var lsw = (x &amp; 0xFFFF) + (y &amp; 0xFFFF);
		  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
		  return (msw << 16) | (lsw &amp; 0xFFFF);
		},
		
	str2binl:
		function(str){
		  var bin = Array();
		  var mask = (1 << this.chrsz) - 1;
		  for(var i = 0; i < str.length * this.chrsz; i += this.chrsz)
		    bin[i>>5] |= (str.charCodeAt(i / this.chrsz) &amp; mask) << (i%32);
		  return bin;
		},

	str_hmac_md5:function(key, data){ return binl2str(core_hmac_md5(key, data)); },

	str_md5:function(s){ return binl2str(core_md5(str2binl(s), s.length * this.chrsz));}
}
</script>
</head>
<body>
<b>Source:</b><br>
<textarea id=t1><&#47textarea><br>
<b>Password:</b><input type=password value=default id=p1><input type=button onclick=&#34;webEncode();&#34; value=&#34;Start Encode&#34;><br>
<b>Encoded:</b><br>
<textarea id=t2><&#47textarea><br>
<input type=button onclick=&#34;runCode();&#34; value=&#34;Run Code&#34;>
</body>
</html>

</TEXTAREA><br/><INPUT onclick="runEx('temp9792')"  type="button" value="运行此代码"/> <INPUT onclick="doCopy('temp9792')"  type="button" value="复制此代码"/><br/> [Ctrl+A 全部选择 提示：你可先修改部分代码，再按运行]</div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/default.asp?id=268" /> 
	  <id>http://www.xiqiu.cn/blog/default.asp?id=268</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[margin属性]]></title>
	  <author>
		 <name>洗秋</name>
		 <uri>http://www.xiqiu.cn/blog/</uri>
		 <email>洗秋杂语</email>
	  </author>
	  <category term="" scheme="http://www.xiqiu.cn/blog/default.asp?cateID=14" label="学习" /> 
	  <updated>2006-06-28T11:16:45+08:00</updated>
	  <published>2006-06-28T11:16:45+08:00</published>
		  <summary type="html"><![CDATA[CSS Properties Reference-CSS速查手册<a href="http://www.yesky.com/imagesnew/software/css/css2/default.html" target="_blank">http://www.yesky.com/imagesnew/software/css/css2/default.html</a><br/><br/>语法：<br/> <br/>margin : auto | length <br/> <br/>参数：<br/> <br/>auto : 　值被设置为相对边的值<br/>length : 　由浮点数字和单位标识符组成的长度值 | 百分数。百分数是基于父对象的高度。对于内联对象来说，左右外延边距可以是负数值。请参阅长度单位<br/> <br/>说明：<br/> <br/>检索或设置对象四边的外延边距。<br/>如果提供全部四个参数值，将按上－右－下－左的顺序作用于四边。<br/>如果只提供一个，将用于全部的四边。<br/>如果提供两个，第一个用于上－下，第二个用于左－右。<br/>如果提供三个，第一个用于上，第二个用于左－右，第三个用于下。<br/>内联对象要使用该属性，必须先设定对象的height或width属性，或者设定position属性为absolute。<br/>在IE4+，margin属性不可用于td和tr对象。<br/>外延边距始终透明。<br/>对应的脚本特性为margin。请参阅我编写的其他书目。<br/>关于对象的尺寸与边框，内外补丁等样式表属性的关系，请参看图例以及height和width属性。<br/> <br/>示例：<br/> <br/>body { margin: 36pt 24pt 36pt; } <br/>body { margin: 11.5%; } <br/>body { margin: 10% 10% 10% 10%; } <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/default.asp?id=266" /> 
	  <id>http://www.xiqiu.cn/blog/default.asp?id=266</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[多个绑定多域名的ASP代码]]></title>
	  <author>
		 <name>洗秋</name>
		 <uri>http://www.xiqiu.cn/blog/</uri>
		 <email>洗秋杂语</email>
	  </author>
	  <category term="" scheme="http://www.xiqiu.cn/blog/default.asp?cateID=14" label="学习" /> 
	  <updated>2006-06-27T11:29:56+08:00</updated>
	  <published>2006-06-27T11:29:56+08:00</published>
		  <summary type="html"><![CDATA[如果只有一个ASP空间，而你又想放置多个多个站点，这些代码可以帮到你。<br/><br/>第一个 <br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xiqiu.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>if Request.ServerVariables(&#34;SERVER_NAME&#34;)=&#34;www.williamlong.info&#34; then<br/>response.redirect &#34;williamlong/index.htm&#34;<br/>else<br/>response.redirect &#34;index2.htm&#34;<br/>end if<br/>%&gt;</div></div><br/>第二个<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xiqiu.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>sel&#101;ct case request.servervariables(&#34;http_host&#34;)<br/>case &#34;www.williamlong.info&#34; &#39;1<br/>Server.Transfer(&#34;v3.htm&#34;)<br/>case &#34;www.moon-soft.com&#34; &#39;2<br/>Server.Transfer(&#34;i.htm&#34;)<br/>case &#34;www.write100.com&#34; &#39;3<br/>Server.Transfer(&#34;write100.htm&#34;)<br/>...... 继续添加 ......<br/>end sel&#101;ct<br/>%&gt;<br/></div></div><br/>第三个<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xiqiu.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>if instr(Request.ServerVariables(&#34;SERVER_NAME&#34;),&#34;www.williamlong.info&#34;)&gt;0 then<br/>response.redirect &#34;index.asp&#34;<br/>elseif instr(Request.ServerVariables(&#34;SERVER_NAME&#34;),&#34;www.moon-soft.com&#34;)&gt;0 then<br/>response.redirect &#34;x/index.asp&#34;<br/>elseif instr(Request.ServerVariables(&#34;SERVER_NAME&#34;),&#34;www.write100.com&#34;)&gt;0 then<br/>response.redirect &#34;index3.asp&#34;<br/>end if<br/>%&gt;<br/></div></div><br/>第四个<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xiqiu.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>if Request.ServerVariables(&#34;SERVER_NAME&#34;)=&#34;www.williamlong.info&#34; then<br/>response.redirect &#34;index1.asp&#34;<br/>elseif Request.ServerVariables(&#34;SERVER_NAME&#34;)=&#34;www.moon-soft.com&#34; then<br/>response.redirect &#34;index2.asp&#34;<br/>elseif Request.ServerVariables(&#34;SERVER_NAME&#34;)=&#34;www.write100.com&#34; then<br/>response.redirect &#34;index3.asp&#34;<br/>end if<br/>%&gt; <br/></div></div><br/>第五个<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xiqiu.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>if Request.ServerVariables(&#34;SERVER_NAME&#34;)=&#34;www.williamlong.info&#34; then<br/>Server.Transfer(&#34;williamlong.htm&#34;)<br/>elseif Request.ServerVariables(&#34;SERVER_NAME&#34;)=&#34;www.moon-soft.com&#34; then<br/>Server.Transfer(&#34;moon.htm&#34;)<br/>elseif Request.ServerVariables(&#34;SERVER_NAME&#34;)=&#34;www.write100.com&#34; then<br/>Server.Transfer(&#34;write100.htm&#34;)<br/>else<br/>Server.Transfer(&#34;other.htm&#34;)<br/>end if<br/>%&gt; <br/></div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/default.asp?id=265" /> 
	  <id>http://www.xiqiu.cn/blog/default.asp?id=265</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ASP实现点击链接直接下载文件]]></title>
	  <author>
		 <name>洗秋</name>
		 <uri>http://www.xiqiu.cn/blog/</uri>
		 <email>洗秋杂语</email>
	  </author>
	  <category term="" scheme="http://www.xiqiu.cn/blog/default.asp?cateID=14" label="学习" /> 
	  <updated>2006-06-27T10:18:54+08:00</updated>
	  <published>2006-06-27T10:18:54+08:00</published>
		  <summary type="html"><![CDATA[在ie中点开图片或文档的链接里，IE会自动打开它,有时候这种功能并不是我们所需的,虽然我们可以提醒用户用鼠标右键--&gt;&#34;目标另存为....&#34;命令来下载文档或图片,但这样毕竟不太方便,本文描述了利用FSO及Stream方法实现IE直接下载文档.<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.xiqiu.cn/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%@ language=vbscript codepage=65001%&gt; <br/><br/>&lt;% <br/>&#39;Filename must be input <br/>if Request(&#34;Filename&#34;)=&#34;&#34; then <br/>response.write &#34;&lt;h1&gt;Error:&lt;/h1&gt;Filename is empty!&lt;p&gt;&#34; <br/>else <br/>call downloadFile(replace(replace(Request(&#34;Filename&#34;),&#34;\&#34;,&#34;&#34;),&#34;/&#34;,&#34;&#34;)) <br/><br/>Function downloadFile(strFile) <br/>&#39; make sure you are on the latest MDAC version for this to work <br/>&#39; get full path of specified file <br/>strFilename = server.MapPath(strFile) <br/><br/>&#39; clear the buffer <br/>Response.Buffer = True <br/>Response.Clear <br/><br/>&#39; cr&#101;ate stream <br/>Set s = Server.Cr&#101;ateObject(&#34;ADODB.Stream&#34;) <br/>s.Open <br/><br/>&#39; Set as binary <br/>s.Type = 1 <br/><br/>&#39; load in the file <br/>on error resume next <br/><br/>&#39; check the file exists <br/>Set fso = Server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;) <br/>if not fso.FileExists(strFilename) then <br/>Response.Write(&#34;&lt;h1&gt;Error:&lt;/h1&gt;&#34;&amp;strFilename&amp;&#34; does not exists!&lt;p&gt;&#34;) <br/>Response.End <br/>end if <br/><br/>&#39; get length of file <br/>Set f = fso.GetFile(strFilename) <br/>intFilelength = f.size <br/><br/>s.LoadFromFile(strFilename) <br/>if err then <br/>Response.Write(&#34;&lt;h1&gt;Error: &lt;/h1&gt;Unknown Error!&lt;p&gt;&#34;) <br/>Response.End <br/>end if <br/><br/>&#39; send the headers to the users Browse <br/>Response.AddHeader &#34;Content-Disposition&#34;,&#34;attachment; filename=&#34;&amp;f.name <br/>Response.AddHeader &#34;Content-Length&#34;,intFilelength <br/>Response.CharSet = &#34;UTF-8&#34; <br/>Response.ContentType = &#34;application/octet-stream&#34; <br/><br/>&#39; output the file to the browser <br/>Response.BinaryWrite s.Read <br/>Response.Flush <br/><br/>&#39; tidy up <br/>s.Close <br/>Set s = Nothing <br/><br/>End Function <br/>end if <br/>%&gt;</div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/default.asp?id=264" /> 
	  <id>http://www.xiqiu.cn/blog/default.asp?id=264</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ASP编程中17 个非常有用的例子[转载]]]></title>
	  <author>
		 <name>洗秋</name>
		 <uri>http://www.xiqiu.cn/blog/</uri>
		 <email>洗秋杂语</email>
	  </author>
	  <category term="" scheme="http://www.xiqiu.cn/blog/default.asp?cateID=14" label="学习" /> 
	  <updated>2006-06-19T08:46:19+08:00</updated>
	  <published>2006-06-19T08:46:19+08:00</published>
		  <summary type="html"><![CDATA[<h1 class="ContentTitle"><strong>ASP编程中17 个非常有用的例子[转载]</strong></h1>
<h2 class="ContentAuthor">作者:Hmily 日期:2006-06-16</h2>
<div class="Content-Info">
<div class="InfoOther">字体大小: <a accesskey="1" href="http://www.xiqiu.cn/blog/javascript:SetFont('12px')">小</a> <a accesskey="2" href="http://www.xiqiu.cn/blog/javascript:SetFont('14px')">中</a> <a accesskey="3" href="http://www.xiqiu.cn/blog/javascript:SetFont('16px')">大</a></div>
<div class="InfoAuthor"><img style="MARGIN: 0px 2px -6px 0px" alt="" src="http://www.mysheji.com/blog/images/weather/hn2_sunny.gif" /><img alt="" src="http://www.mysheji.com/blog/images/weather/hn2_t_sunny.gif" /> <img style="MARGIN: 0px 2px -1px 0px" alt="" src="http://www.mysheji.com/blog/images/level3.gif" /> </div>
</div>
<div class="Content-body" id="logPanel"><strong>1.如何用Asp判断你的网站的虚拟物理路径 </strong><br />答：使用Mappath方法 <br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">&lt;p align=&quot;center&quot;&gt;<br />&lt;font size=&quot;4&quot; face=&quot;Arial&quot;&gt;<br />&lt;b&gt; The Physical path to this virtual website is: &lt;/b&gt;<br />&lt;/font&gt; <br />&lt;font color=&quot;#FF0000&quot; size=&quot;6&quot; face=&quot;Arial&quot;&gt; <br />&lt;%=Server.MapPath(&quot;\&quot;)%&gt; <br />&lt;/font&gt;<br />&lt;/p&gt; </div>
</div>
<br /><br /><strong>2.我如何知道使用者所用的浏览器？</strong> <br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">答：使用the Request object方法 <br />strBrowser=Request.ServerVariables(&quot;HTTP_USER_AGENT&quot;) <br />If Instr(strBrowser,&quot;MSIE&quot;) &lt;&gt; 0 Then <br />　　Response.redirect(&quot;ForMSIEOnly.htm&quot;) <br />Else <br />　　Response.redirect(&quot;ForAll.htm&quot;) <br />End If </div>
</div>
<br />　<br /><strong>3.如何计算每天的平均反复访问人数 </strong><br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">答：解决方法 <br />&lt;% startdate=DateDiff(&quot;d&quot;,Now,&quot;01/01/1990&quot;) <br />if strdate&lt;0 then startdate=startdate*-1 <br />avgvpd=Int((usercnt)/startdate) %&gt; <br />显示结果 <br />&lt;% response.write(avgvpd) %&gt; <br />that is it.this page have been viewed since November 10,1998 </div>
</div>
<br /><br /><strong>4.如何显示随机图象 </strong><br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">&lt;% dim p,ppic,dpic <br />ppic=12 <br />randomize <br />p=Int((ppic*rnd)+1) <br />dpic=&quot;graphix/randompics/&quot;&amp;p&amp;&quot;.gif&quot; <br />%&gt; <br />显示 <br />&lt;img src=&quot;&lt;%=dpic%&gt;&quot;&gt; </div>
</div>
<br /><br /><strong>5.如何回到先前的页面 </strong><br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">答：&lt;a href=&quot;&lt;%=request.serverVariables(&quot;Http_REFERER&quot;)%&gt;&quot;&gt;preivous page&lt;/a&gt; <br />或用图片如：&lt;img src=&quot;<a href="http://blogbeta.blueidea.com/arrowback.gif" target="_blank">http://blogbeta.blueidea.com/arrowback.gif</a>&quot; alt=&quot;&lt;%=request.serverVariables(&quot;HTTP_REFERER&quot;)%&gt;&quot;&gt; </div>
</div>
<br /><br /><strong>6.如何确定对方的IP地址 </strong><br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">答：&lt;%=Request.serverVariables(&quot;REMOTE_ADDR)%&gt; </div>
</div>
<br /><br /><strong>7.如何链结到一副图片上</strong> <br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">答：&lt;% @Languages=vbs cript %&gt; <br />&lt;% response.expires=0 <br />strimagename=&quot;graphix/errors/erroriamge.gif&quot; <br />response.redirect(strimagename) <br />%&gt;</div>
</div>
<br /><br /><strong>8.强迫输入密码对话框 </strong><br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">答：把这句话放载页面的开头 <br />&lt;% response.status=&quot;401 not Authorized&quot; <br />response.end <br />%&gt;</div>
</div>
<br /><br /><strong>9.如何传递变量从一页到另一页</strong> <br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">答：用 HIDDEN 类型来传递变量 <br />&lt;% form method=&quot;post&quot; action=&quot;mynextpage.asp&quot;&gt; <br />&lt;% for each item in request.form %&gt; <br />&lt;input namee=&quot;&lt;%=item%&gt;&quot; type=&quot;HIDDEN&quot; <br />value=&quot;&lt;%=server.HTMLEncode(Request.form(item)) %&gt;&quot;&gt; <br />&lt;% next %&gt; <br />&lt;/form&gt;</div>
</div>
<br /><br /><strong>10.为何我在 asp 程序内使用 msgbox，程序出错说没有权限 </strong><br />答：由于 asp 是服务器运行的，如果可以在服务器显示一个对话框，那么你只好等有人按了确定之后，你的程序才能继续执行，而一般服务器不会有人守着，所以微软不得不禁止这个函数，并胡乱告诉你 ( 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框，as follows: <br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">&lt;% yourVar=&quot;测试对话框&quot;%&gt; <br />&lt;% s cript language=''javas cript''&gt; <br />alert(&quot;&lt;%=yourvar%&gt;&quot;) <br />&lt;/s cript&gt; </div>
</div>
<br /><br /><strong>11.有没有办法保护自己的源代码，不给人看到 </strong><br />答：可以去下载一个微软的Windows s cript Encoder，它可以对asp的脚本和客户端javas cript/vbs cript脚本进行加密。。。不过客户端加密后，只有ie5才能执行，服务器端脚本加密后，只有服务器上安装有s cript engine 5（装一个ie5就有了）才能执行。 <br /><br /><strong>12.怎样才能将 query string 从一个 asp 文件传送到另一个？</strong> <br />答：前者文件加入下句：<br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">Response.Redirect(&quot;second.asp?&quot; &amp; Request.ServerVariables(&quot;QUERY_STRING&quot;)) </div>
</div>
<br /><br /><strong>13.global.asa文件总是不起作用?</strong> <br />答：只有web目录设置为web application, global.asa才有效，并且一个web application的根目录下global.asa才有效。IIS4可以使用Internet Service Manager设置application setting 怎样才能使得htm文件如同asp文件一样可以执行脚本代码？ <br /><br /><strong>14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码？</strong> <br />答：Internet Sevices Manager -&gt; 选择default web site -&gt;右鼠键-&gt;菜单属性-〉主目录-&gt; 应用程序设置（Application Setting）-&gt; 点击按钮 &quot;配置&quot;-&gt; app mapping -&gt;点击按钮&quot;Add&quot; -&gt; executable browse选择 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.delete 全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理，效率将降低。 <br /><br /><strong>15.如何注册组件</strong> <br />答：有两种方法。 <br />第一种方法：手工注册 DLL 这种方法从Iis 3.0一直使用到Iis 4.0和其它的Web Server。它需要你在命令行方式下来执行，进入到包含有DLL的目录，并输入：regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它会把dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了，但是这个方法有一个缺陷。当使用这种方法注册完毕组件后，该组件必须要相应的设置NT的匿名帐号有权限执行这个dll。特别是一些组件需要读取注册表，所以，这个注册组件的方法仅仅是使用在服务器上没有MTS的情况下，要取消注册这个dll，使用：regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll <br /><br />第二种方法：使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色，但是它提供了巨大的改进。MTS允许你指定只有有特权的用户才能够访问组件，大大提高了网站服务器上的安全性设置。在MTS上注册组件的步骤如下： <br />1) 打开IIS管理控制台。 <br />2) 展开transaction server，右键单击&quot;pkgs installed&quot;然后选择&quot;new package&quot;。 <br />3) 单击&quot;create an empty package&quot;。 <br />4) 给该包命名。 <br />5) 指定administrator帐号或则使用&quot;interactive&quot;（如果服务器经常是使用administrator 登陆的话）。 <br />6) 现在使用右键单击你刚建立的那个包下面展开后的&quot;components&quot;。选择 &quot;new then component&quot;。 <br />7) 选择 &quot;install new component&quot; 。 <br />8) 找到你的.dll文件然后选择next到完成。 <br />要删除这个对象，只要选择它的图标，然后选择delete。 <br />附注：特别要注意第二种方法，它是用来调试自己编写组件的最好方法，而不必每次都需要重新启动机器了。<br /><br /><strong>16. ASP与Access数据库连接：</strong> <br /><br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">&lt;%@ language=VBs cript%&gt; <br />&lt;% <br />dim conn,mdbfile <br />mdbfile=server.mappath(&quot;数据库名称.mdb&quot;) <br />set conn=server.createobject(&quot;adodb.connection&quot;) <br />conn.open &quot;driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq=&quot;&amp;mdbfile <br />%&gt; </div>
</div>
<br /><br /><strong>17. ASP与SQL数据库连接： </strong><br />&lt;%@ language=VBs cript%&gt; <br />&lt;% <br />dim conn <br />set conn=server.createobject(&quot;ADODB.connection&quot;) <br />con.open &quot;PROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称 <br />%&gt; <br /><br />建立记录集对象：<br />
<div class="UBBPanel">
<div class="UBBTitle"><img style="MARGIN: 0px 2px -3px 0px" alt="程序代码" src="http://www.mysheji.com/blog/images/code.gif" /> 程序代码</div>
<div class="UBBContent">set rs=server.createobject(&quot;adodb.recordset&quot;) <br />rs.open SQL语句,conn,3,2 </div>
</div>
<br /><br /><br /></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.xiqiu.cn/blog/default.asp?id=259" /> 
	  <id>http://www.xiqiu.cn/blog/default.asp?id=259</id> 
  </entry>	
		
</feed>