<?xml version="1.0" encoding="GB2312"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:admin="http://webns.net/mvcb/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

	<channel>
		<title>
			<![CDATA[hike的博客]]>
		</title>
		<link>http://hike.bokee.com/index.html</link>
		<description>
			<![CDATA[欢迎访问hike的博客]]>
		</description>
		<dc:language>zh-cn</dc:language>
		<dc:creator>email</dc:creator>
		<dc:date>2007-09-07T03:44:54Z</dc:date>
		<admin:generatorAgent rdf:resource="http://blog.bokee.com.com" />
	
					<item>
				<title>
					<![CDATA[无人值守安装系统补丁批处理代码]]>
				</title>
				<link>http://hike.bokee.com/6432450.html</link>
				<description>
					<![CDATA[<p><p>方式一</p><p>@echo off <br />Echo 无人值守安装系统补丁 <br />Echo hike.bokee.com <br />Echo 开始进行无人值守安装系统补丁 <br />for %%i in (*.exe) do %%i /passive /norestart /nobackup <br />Echo 安装完成,重新启动计算机生效,请确认! <br />pause <br />shutdown -r<br /></p><p /><p>方式二</p><p>@echo off <br />echo Windows XP SP1 后的所有补丁升级程序! <br />echo 正在升级中，请等............. <br />start /wait WindowsXP-KB928843-x86-CHS.exe /passive /norestart<br />start /wait WindowsXP-KB929969-x86-CHS.exe /passive /norestart&nbsp; <br />start /wait WindowsXP-KB930178-x86-CHS.exe /passive /norestart<br />start /wait WindowsXP-KB931261-x86-CHS.exe /passive /norestart&nbsp;&nbsp; <br />start /wait WindowsXP-KB931768-x86-CHS.exe /passive /norestart<br />start /wait WindowsXP-KB931784-x86-CHS.exe /passive /norestart&nbsp;&nbsp; <br />start /wait WindowsXP-KB932168-x86-CHS.exe /passive /norestart<br />echo 升级完毕，请重新启动您的计算机，以便完成升级，按任意键关闭此窗口！ <br />pause <br />exit</p><p /><p /></p>]]>
				</description>
				<guid isPermaLink="false">
					6432450@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-08-28  18:06</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[在线日历]]>
				</title>
				<link>http://hike.bokee.com/6398340.html</link>
				<description>
					<![CDATA[]]>
				</description>
				<guid isPermaLink="false">
					6398340@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-08-2  14:25</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[清空系统密码]]>
				</title>
				<link>http://hike.bokee.com/6395725.html</link>
				<description>
					<![CDATA[<p>system32下 有个msv1_0.dll<br /><br />xp sp2<br />F8 10 75 11 B0 01 8B 4D<br />修改为<br />E0 00 75 11 B0 01 8B 4D<br /><br />2k professinal<br />F8 10 0F 84 71 FF FF<br />修改为<br />E0 00 0F 84 71 FF FF<br /><br />2k sp4<br />F8 10 75 11 b0 01 8b 4D<br />修改为<br />E0 00 75 11 b0 01 8b 4D<br /><br />2003 sp1<br />F8 10 0F 84 D0 B8 FF FF<br />修改为<br />E0 00 0F 84 D0 B8 FF FF<br /><br />vista rtm<br />F8 10 75 13 B0 01 8B 4D<br />修改为<br />E0 00 75 13 B0 01 8B 4D<br /><br />都是前两个字节改为<br />E0 00<br /><br />全部管理员帐号无须密码登陆<br />包括远程登陆的<br /><br />改两个目录的 msv1_0.dll 用16进制<br />dir /s c:\windows\system\msv1_0.dll <br /></p>]]>
				</description>
				<guid isPermaLink="false">
					6395725@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-07-31  17:53</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[随机显示图片的Javascript网页特效源代码]]>
				</title>
				<link>http://hike.bokee.com/6373037.html</link>
				<description>
					<![CDATA[<p><p>首先搞个js的文件，如image.js，代码如下：<br /></p><div class="code">today=new&nbsp;Date(); <br />jran=today.getTime(); <br />function&nbsp;rnd()&nbsp;{ <br />ia=9301; <br />ic=49297; <br />im=233280; <br />jran&nbsp;=&nbsp;(jran*ia+ic)&nbsp;%&nbsp;im; <br />return&nbsp;jran/(im*1.0); <br />}; <br />function&nbsp;rand(number)&nbsp;{ <br />return&nbsp;Math.ceil(rnd()*number); <br />}; <br />document.write(&quot;&lt;center&gt;&quot;); <br />for(i=1;i&lt;=1;i++)&nbsp;{ <br />myNum=(rand(3));&nbsp;//改成你要随机显示的图片数； <br />if(myNum&nbsp;==&nbsp;1)&nbsp;document.write(&quot;&lt;img&nbsp;src='images/jk_01.jpg'&gt;&quot;);&nbsp;//图片路径，可用http:// <br />if(myNum&nbsp;==&nbsp;2)&nbsp;document.write(&quot;&lt;img&nbsp;src='images/jk_02.jpg'&gt;&quot;);&nbsp; <br />if(myNum&nbsp;==&nbsp;3)&nbsp;document.write(&quot;&lt;img&nbsp;src='images/jk_03.jpg'&gt;&quot;);&nbsp; <br />else&nbsp;{ <br />document.write(); <br />} <br />}; <br />document.write(&quot;&lt;/center&gt;&quot;);</div><br />然后在你要文件里面放入调用<br />!-- js文件，用于实现随机图片显示，注意文件路径--&gt;<br />&lt;script src=&quot;js/image.js&quot;&gt;&lt;/script&gt;</p>]]>
				</description>
				<guid isPermaLink="false">
					6373037@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-07-16  10:51</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[用css实现真正的圆角表格]]>
				</title>
				<link>http://hike.bokee.com/6366343.html</link>
				<description>
					<![CDATA[<p><a href="HiKe">http://hike.blogchina.com">HiKe电脑吧（hike.bokee.com）提供</a></p>]]>
				</description>
				<guid isPermaLink="false">
					6366343@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-07-11  15:52</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[下一代互联网IPv6地址方案]]>
				</title>
				<link>http://hike.bokee.com/6198030.html</link>
				<description>
					<![CDATA[<p><p><strong><font color="#cc0000" size="3">IPv6概述</font></strong></p><p>现有Internet的基础是IPv4，到目前为止有近30年的历史了。由于Internet的迅猛发展，据统计平均每年Internet的规模就扩大一倍。IPv4的局限性就越来越明显。个人电脑市场的急剧扩大、还有个人移动计算设备的上网、网上娱乐服务的增加、多媒体数据流的加入、以及出于安全性等方面的需求都迫切要求新一代IP协议的出现。<br />因此，对新一代互联网络协议（Internet Protocol Next Generation - IPng）的研究和实践已经成为世界性的热点，其相关工作也早已展开。围绕IPng的基本设计目标，以业已建立的全球性试验系统为基础，对安全性、可移动性、服务质量的基本原理、理论和技术的探索已经展开。 <br />&nbsp;&nbsp;&nbsp; 90年代初，人们就开始讨论新的互联网络协议。IETF的IPng工作组在1994年9月提出了一个正式的草案&quot;The Recommendation for the IP Next Generation Protocol&quot;，1995年底确定了IPng的协议规范，并称为&quot;IP版本6&quot;（IPv6），同现在使用的版本4相区别；1998年作了较大的改动。IPv6在IPv4的基础上进行改进，它的一个重要的设计目标是与IPv4兼容，因为不可能要求立即将所有节点都演进到新的协议版本，如果没有一个过渡方案，再先进的协议也没有实用意义。IPv6面向高性能网络网络（如ATM），同时，它也可以在低带宽的网络(如无线网)上有效的运行。<br />&nbsp;&nbsp;&nbsp; 在国际上，对IPv6的各项研究和实现已经展开。法国INRIA、日本KAME、美国NRL等研究机构，IBM、Sun Microsystems、Trumpet、Hitachi等公司，分别研制开发了不同平台上的IPv6系统软件和应用软件；Cisco、Bay等路由器厂商已经开发出了面向IPv6网络的路由器产品。1996年，一个以研究IPv6为目标的虚拟实验网络，国际IPv6试验床6Bone建立，欧洲、美洲、亚洲的许多国家和组织都已经加入了6BONE。1998年底，面向实用的全球性IPv6研究和教育网（6REN）开始启动。这期间以STAR TAP为依托的6TAP（IPv6 Transit Access Point）得以实施，建立了以ATM交换机为中心的IPv6洲际网络。今年，IETF确定IPv6进入实用阶段，并指定6Bone为对商用IPv6地址申请者进行评估的平台。 </p><p /><p><strong><font color="#cc0000" size="3">IPv4和IPv6</font></strong> </p><p>什么是IPv4?<br />&nbsp;&nbsp;&nbsp; 目前的全球因特网所采用的协议族是TCP/IP协议族。IP是TCP/IP协议族中网络层的协议，是TCP/IP协议族的核心协议。目前IP协议的版本号是4(简称为IPv4)，发展至今已经使用了30多年。<br />&nbsp;&nbsp;&nbsp; IPv4的地址位数为32位，也就是最多有2的32次方的电脑可以联到Internet上。<br />&nbsp;&nbsp;&nbsp; 近十年来由于互联网的蓬勃发展，IP位址的需求量愈来愈大，使得IP位址的发放愈趋严格，各项资料显示全球IPv4位址可能在2005至2008年间全部发完。</p><p>什么是IPv6?<br />&nbsp;&nbsp;&nbsp; IPv6是下一版本的互联网协议，也可以说是下一代互联网的协议，它的提出最初是因为随着互联网的迅速发展，IPv4定义的有限地址空间将被耗尽，地址空间的不足必将妨碍互联网的进一步发展。为了扩大地址空间，拟通过IPv6重新定义地址空间。IPv6采用128位地址长度，几乎可以不受限制地提供地址。按保守方法估算IPv6实际可分配的地址，整个地球的每平方米面积上仍可分配1000多个地址。在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题以外，还考虑了在IPv4中解决不好的其它问题，主要有端到端IP连接、服务质量（QoS）、安全性、多播、移动性、即插即用等。</p><p>IPv6与IPv4相比有什么特点和优点？ </p><p>更大的地址空间。IPv4中规定IP地址长度为32，即有2^32-1个地址；而IPv6中IP地址的长度为128，即有2^128-1个地址。 <br />更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则，这使得路由器能在路由表中用一条记录(Entry)表示一片子网，大大减小了路由器中路由表的长度，提高了路由器转发数据包的速度。 <br />增强的组播(Multicast)支持以及对流的支持(Flow-control)。这使得网络上的多媒体应用有了长足发展的机会，为服务质量(QoS)控制提供了良好的网络平台. <br />加入了对自动配置(Auto-configuration)的支持。这是对DHCP协议的改进和扩展，使得网络(尤其是局域网)的管理更加方便和快捷. <br />更高的安全性.在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,这极大的增强了网络安全. <br /></p><p><strong><font color="#cc0000" size="3">IPv6地址方案 </font></strong></p><p>和IPv4相比，IPv6的主要改变就是地址的长度为128位，也就是说可以有2的128次方的IP地址，相当于10的后面有38个零。这么庞大的地址空间，足以保证地球上的每个人拥有一个或多个IP地址。 <br />IPv6地址类型<br />&nbsp;&nbsp;&nbsp; 在RFC1884中指出了三种类型的IPv6地址，他们分别占用不同的地址空间：</p><p>单点传送：这种类型的地址是单个接口的地址。发送到一个单点传送地址的信息包只会送到地址为这个地址的接口。 <br />任意点传送：这种类型的地址是一组接口的地址，发送到一个任意点传送地址的信息包只会发送到这组地址中的一个（根据路由距离的远近来选择） <br />多点传送：这种类型的地址是一组接口的地址，发送到一个多点传送地址的信息包会发送到属于这个组的全部接口。 <br />&nbsp;&nbsp;&nbsp; 和IPv4不同的是，IPv6中出现了任意点传送地址，并以多点传送地址代替了IPv4中的广播地址。 <br />IPv6地址表示<br />&nbsp;&nbsp;&nbsp; 我们知道，IPv4地址长度为32位（4个字节）。书写IPv4的地址是用一个字节来代表一个无符号十进制整数，四个字节写成由3个点分开的四个十进制数，例如：<br />10.1.123.56<br />对于128位的IPv6地址，定义相似的表示方法是必要的。 考虑到IPv6地址的长度是原来的四倍，RFC1884规定的标准语法建议把IPv6地址的128位（16个字节）写成8个16位的无符号整数，每个整数用四个十六进制位表示，这些数之间用冒号（：）分开，例如：<br />3ffe:3201:1401:1:280:c8ff:fe4d:db39<br />&nbsp;&nbsp;&nbsp; 从上面的例子我们看到了手工管理IPv6地址的难度，也看到了DHCP和DNS的必要性。为了进一步简化IPv6的地址表示，可以用0来表示0000，用1来表示0001，用20来表示0020， 用300来表示0300，只要保证数值不便，就可以将前面的0省略。比如：<br />&nbsp;&nbsp;&nbsp; 1080:0000:0000:0000:0008:0800:200C:417A<br />&nbsp;&nbsp;&nbsp; 0000:0000:0000:0000:0000:0000:0A00:0001<br />&nbsp;&nbsp;&nbsp; 可以简写为：<br />&nbsp;&nbsp;&nbsp; 1080:0:0:0:8:800:200C:417A<br />&nbsp;&nbsp;&nbsp; 0:0:0:0:0:0:A00:1<br />&nbsp;&nbsp;&nbsp; 另外，还规定可以用符号::表示一系列的0。那么上面的地址又可以简化为：<br />&nbsp;&nbsp;&nbsp; 1080::0:8:800:200C:417A<br />&nbsp;&nbsp;&nbsp; ::A00:1</p><p>&nbsp;&nbsp;&nbsp; IPv6地址的前缀（FP, Format Prefix）的表示和IPv4地址前缀在CIDR中的表示方法类似。比如 0020:0250:f002::/48表示一个前缀为48位的网络地址空间。</p><p>IPv6地址分配<br />&nbsp;&nbsp;&nbsp; RFC1881规定， IPv6地址空间的管理必须符合Internet团体的利益，必须是通过一个中心权威机构来分配。目前这个权威机构就是IANA（Internet Assigned Numbers Authority，Internet分配号码权威机构）。 IANA会根据IAB（Internet Architecture Board）和IEGS的建议来进行IPv6地址的分配.<br />&nbsp;&nbsp;&nbsp; 目前IANA已经委派三个地方组织来执行IPv6地址分配的任务：</p><p>欧洲的RIPE-NCC （<a href="http://www.ripe.net/">www.ripe.net</a>） <br />北美的INTERNIC （<a href="http://www.internic.net/">www.internic.net</a>） <br />亚太平洋地区的APNIC（<a href="http://www.apnic.net/">www.apnic.net</a>） <br /><b style="mso-bidi-font-weight: normal"><font class="width" color="#cc0000" size="3"></font></b></p><p><b style="mso-bidi-font-weight: normal"><font class="width" color="#cc0000" size="3">IPv6和域名服务</font></b></p><p>互联网域名系统的设计是同网络的传输体制无关的。所以，为IPv6网络建立的域名系统可以和传统的IPv4域名系统结合在一起，而不需要另外建立一套独立的IPv6域名系统。现在Internet上最通用的域名服务软件BIND版本9已经实现了对IPv6地址的支持，所以要解决IPv6地址和主机名之间的映射就很容易实现了。 </p><p>&nbsp;&nbsp;&nbsp;&nbsp;要支持IPv6, 域名服务系统需要支持以下的新特性：</p><ul><li>解析IPv6地址的类型（type），即AAAA和A6类型 </li><li>为IPv6地址的逆向解析提供的反向域，即ip6.int. </li><li>识别上述新特性的域名服务器就可以为IPv6的地址-名字解析提供服务。 </li></ul><p>（1）. 正向解析</p><p>　　IPv4的地址正向解析的资源记录是&quot;A&quot;，而IPv6地址的正向解析目前有两种资源记录，即&quot;AAAA&quot;和&quot;A6&quot;记录。其中&quot;AAAA&quot;较早提出，它是对IPv4协议&quot;A&quot;&quot;录的简单扩展，由于IP地址由32位扩展到128位，扩大了4倍，所以资源记录由&quot;A&quot;扩大成4个&quot;A&quot;。但&quot;AAAA&quot;用来表示域名和IPv6地址的对应关系，并不支持地址的层次性。</p><p>　　AAAA资源记录类型用来将一个合法域名解析为IPv6地址，与IPv4所用的A资源记录类型相兼容。之所以给这新资源记录类型取名为AAAA，是因为128位的IPv6地址正好是32位IPv4地址的四倍，下面是一条AAAA资源记录实例：</p><p>　　host1.microsoft.com IN AAAA FEC0::2AA:FF:FE3F:2A1C</p><p>　　&quot;A6&quot;是在RFC2874基础上提出，它是把一个IPv6地址与多个&quot;A6&quot;记录建立联系，每个&quot;A6&quot;记录都只包含了IPv6地址的一部分，结合后拼装成一个完整的IPv6地址。&quot;A6&quot;记录支持一些&quot;AAAA&quot;所不具备的新特性，如地址聚集，地址更改（Renumber）等。</p><p>　　&quot;A6&quot;记录根据可聚集全局单播地址中的TLA、NLA和SLA项目的分配层次把128位的IPv6的地址分解成为若干级的地址前缀和地址后缀，构成了一个地址链。每个地址前缀和地址后缀都是地址链上的一环，一个完整的地址链就组成一个IPv6地址。这种思想符合IPv6地址的层次结构，从而支持地址聚集。</p><p>　　同时，用户在改变ISP时，要随ISP改变而改变其拥有的IPv6地址。如果手工修改用户子网中所有在DNS中注册的地址，是一件非常繁琐的事情。而在用&quot;A6&quot;记录表示的地址链中，只要改变地址前缀对应的ISP名字即可，可以大大减少DNS中资源记录的修改。并且在地址分配层次中越靠近底层，所需要改动的越少。</p><p>（2）. 反向解析</p><p>　　IPv6反向解析的记录和IPv4一样，是&quot;PTR&quot;，但地址表示形式有两种。一种是用&quot;.&quot;分隔的半字节16进制数字格式（Nibble Format），低位地址在前，高位地址在后，域后缀是&quot;IP6.INT.&quot;。另一种是二进制串（Bit-string）格式，以&quot;\[&quot;开头，16进制地址（无分隔符，高位在前，低位在后）居中，地址后加&quot;]&quot;，域后缀是&quot;IP6.ARPA.&quot;。半字节16进制数字格式与&quot;AAAA&quot;对应，是对IPv4的简单扩展。二进制串格式与&quot;A6&quot;记录对应，地址也象&quot;A6&quot;一样，可以分成多级地址链表示，每一级的授权用&quot;DNAME&quot;记录。和&quot;A6&quot;一样，二进制串格式也支持地址层次特性。</p><p>　　IP6.INT域用于为IPv6提供逆向地址到主机名解析服务。逆向检索也称为指针检索，根据IP地址来确定主机名。为了给逆向检索创建名字空间，在IP6.INT域中，IPv6地址中所有的32位十六进制数字都逆序分隔表示。例如，为地址FEC0::2AA:FF:FE3F:2A1C（完全表达式为：FEC0:0000:0000:0000:02AA:00FF:FE3F:2A1C）查找域名时，在IP6.INT域中是：C.1.A.2.F.3.E.F.F.F.0.0.A.A.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.C.E.F.IP6.INT.</p><p>　　总之，以地址链形式表示的IPv6地址体现了地址的层次性，支持地址聚集和地址更改。但是，由于一次完整的地址解析要分成多个步骤进行，需要按照地址的分配层次关系到不同的DNS服务器进行查询，并且所有的查询都成功才能得到完整的解析结果。这势必会延长解析时间，出错的机会也增加。因此，在技术方面IPv6协议需要进一步改进DNS地址链功能，提高域名解析的速度才能为用户提供理想的服务。</p><p><strong><font color="#cc0000" size="3">从IPv4到IPv6的过渡策略</font></strong>&nbsp;</p><p><span class="width2"><strong>过渡技术的概述与现状 </strong></span><span class="width2"><br />&nbsp;&nbsp;&nbsp;&nbsp;如何完成从IPv4到IPv6的转换是IPv6发展需要解决的第一个问题。现有的几乎每个网络及其连接设备都支持IPv4，因此要想一夜间就完成从IPv4到IPv6的转换是不切实际的。IPv6必须能够支持和处理IPv4体系的遗留问题。可以预见，IPv4向IPv6的过渡需要相当长的时间才能完成。目前，IETF已经成立了专门的工作组，研究IPv4到IPv6的转换问题，并且已提出了很多方案，主要包括以下几个类型： </span></p><p class="width2"><b>1.双协议栈技术 </b> <br />&nbsp;&nbsp;&nbsp;&nbsp;IPv6和IPv4是功能相近的网络层协议，两者都基于相同的物理平台，而且加载于其上的传输层协议TCP和UDP又没有任何区别。由图1所示的协议栈结构可以看出，如果一台主机同时支持IPv6和IPv4两种协议，那么该主机既能与支持IPv4协议的主机通信，又能与支持IPv6协议的主机通信，这就是双协议栈技术的工作机理。</p><p class="width2"><table style="WIDTH: 150px" cellspacing="1" cellpadding="1" align="baseline" border="1"><tbody><tr><td><p align="center">应用程序</p></td></tr><tr><td><p align="center">TCP/UDP协议</p></td></tr><tr><td><p align="center">IPv6协议&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp; IPv4协议</p></td></tr><tr><td><p align="center">物理网络</p></td></tr></tbody></table></p><p class="width2" align="left">IPv4/v6双协议栈的协议结构</p><p class="width2"><b>2.隧道技术 </b><br />&nbsp;&nbsp;&nbsp;&nbsp;随着IPv6网络的发展，出现了许多局部的IPv6网络，但是这些IPv6网络需要通过IPv4骨干网络相连。将这些孤立的&quot;IPv6岛&quot;相互联通必须使用隧道技术。利用隧道技术可以通过现有的运行IPv4协议的Internet骨干网络（即隧道）将局部的IPv6网络连接起来，因而是IPv4向IPv6过渡的初期最易于采用的技术。 <br />&nbsp;&nbsp;&nbsp;&nbsp;路由器将IPv6的数据分组封装入IPv4，IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址。在隧道的出口处，再将IPv6分组取出转发给目的站点。隧道技术只要求在隧道的入口和出口处进行修改，对其他部分没有要求，因而非常容易实现。但是隧道技术不能实现IPv4主机与IPv6主机的直接通信。 <br /><b>3.网络地址转换/协议转换技术</b> <br />&nbsp;&nbsp;&nbsp;&nbsp;网络地址转换/协议转换技术NAT-PT(Network Address Translation - Protocol Translation)通过与SIIT协议转换和传统的IPv4下的动态地址翻译（NAT）以及适当的应用层网关（ALG）相结合，实现了只安装了IPv6的主机和只安装了IPv4机器的大部分应用的相互通信。 <br />&nbsp;&nbsp;&nbsp;&nbsp;上述技术很大程度上依赖于从支持IPv4的互联网到支持IPv6的互联网的转换，我们期待IPv4和IPv6可在这一转换过程中互相兼容。目前，6to4机制便是较为流行的实现手段之一。 </p><p class="width2"><b>6to4 技术</b> <br />&nbsp;&nbsp;&nbsp;&nbsp;转换策略计划者考虑的关键问题是当使用者对ISP所提供的基本IPv6传输协议还没有合理的选择时，如何激活IPv6路由域间的连通性。当缺少本地IPv6服务时, 提供连通性的解决办法之一是将IPv6的分组封装到IPv4的分组中（6over4隧道技术）。6to4是一种自动构造隧道的方式，它的好处在于只需要一个全球惟一的IPv4地址便可使得整个站点获得IPv6的连接。在IPv4 NAT 协议中加入对IPv6和6to4 的支持，是一个很吸引人的过渡方案。 </p><p class="width2"><b>1.6to4的工作原理 </b><br />&nbsp;&nbsp;&nbsp;&nbsp;6to4采用特殊的IPv6地址使在IPv4海洋中的IPv6孤岛能相互连接。此时IPv6的出口路由器与其他的IPv6域建立隧道连接。IPv4隧道的末端可从IPv6域的地址前缀中自动提取，因为站点的IPv4地址包含在IPv6地址前缀中。6to4另一个让人感兴趣的特点是它可以自动从IPv6 地址的前缀中提取一个IPv4地址。通过这个机制，站点能够配置IPv6而不需要向注册机构申请IPv6地址空间。这同时也简化了ISP提供商的管理工作。可以设想，在一个拥有很多部门的企业里，各部门内部使用私有地址和NAT技术，利用6to4策略可以建立一个虚拟IPv6外部网。它同样可以重新建立起点到点的IP连接，且允许企业在不同地方的服务器使用IPsec协议，从而进一步提高了网络的安全性。此外，6to4机制还允许在采用6to4的IPv6站点和纯IPv6站点之间通过中继路由器 ( 6to4 Relay Router )进行通信，这时不要求通信的两个端点之间具有可用的IPv4连接，中继路由器建议运行BGP4+，适应范围更广。 </p><p class="width2"><b>2.6to4的基本使用方法 </b><br />&nbsp;&nbsp;&nbsp;&nbsp;6to4机制的简单运用是在没有本地IPv6的 ISP 服务时, 几个IPv4站点需使用IPv6进行交互, 因而每一站点都需要确定一个路由来运行双层协议栈（即IPv4和IPv6兼容）和6to4隧道，以确保这个路由有全球范围的路由地址（非专用IPv4地址空间）。<br />在运行过程中，当6to4站点内的IPv6主机试图通过域名访问其他6to4站点内的IPv6主机时，均可通过IPv4或IPv6协议实现。访问方主机选择带有6to4前缀的IPv6地址来发送一个信息包至距离最近的路由器，直至到达站点旁的路由器（假定该站点也提供6to4服务）。 </p><p class="width2"><b>3．6to4路由器的发送接收规则 </b><br />&nbsp;&nbsp;&nbsp;&nbsp;当请求方站点的6to4路由器发送信息包到另一站点（不在一个子网或一个用户网络中），并且下一个目的地址的前缀包含特殊的6to4 TLA值2002::/16，需使用41类型的IPv4协议将IPv6信息包封装于IPv4信息包内，如转换机制RFC所定义的那样。IPv4源地址包含于请求方站点的6to4前缀内（即6to4路由器的网络外部接口的IPv4地址，它包含于IPv6信息包的6to4前缀内），同时接收方IPv4地址成为下一个IPv6发送包目的地址的6to4前缀。 <br />&nbsp;&nbsp;&nbsp;&nbsp;当接收站点的6to4路由器收到IPv4信息包，且识别出是41类型的IPv4协议时，即进行IPv4安全检测，去除文件头，用IPv6源信息包进行本地传送。 <br />&nbsp;&nbsp;&nbsp;&nbsp;以上的发送规则是对IPv6发送规则所作的惟一修正，因为基本的IPv6转换机制的接收规则早已确定。随着DNS内加载适当个数的6to4前缀，任何站点均可脱离人工隧道配置而相互协作。 </p><p class="width2"><b>4．返回路径和源地址的选择 </b><br />&nbsp;&nbsp;&nbsp;&nbsp;可以双向传送的信息包才是有效的。因此当与具有6to4前缀的站点交互时必需在发送的信息包内使用一个6to4前缀作为源地址; 换言之，源地址必须带有6to4前缀。（这个简单例子说明，双方站点仅有IPv4连通性不再是通信障碍，它们可以通过6to4前缀来进行通信）。DNS在搜寻主机名后仅可返回一个IPv6地址，且带有6to4前缀,因此上述源地址的选择不再是个问题。 </p><p class="width2"><b>5.更为复杂的6to4使用方法 </b><br />&nbsp;&nbsp;&nbsp;&nbsp;当站点同时拥有6to4连通性和本地IPv6连通性时，会有多种6to4的使用方法。最简单的一种就是当某个站点试图访问另一个仅有6to4连通性的站点时，上文所提到的源地址的选择算法可确保得到站点的6to4 IPv6地址。在此并不需要选择目的地址，因为只有一个选择：6to4。 <br />&nbsp;&nbsp;&nbsp;&nbsp;同样，当仅拥有6to4连通性的站点试图访问同时拥有6to4和本地IPv6连通性的站点时，在多个目的地址中主机的选择规则决定了6to4地址的选择，因为只有一个本地6to4 IPv6源地址是有效的。 <br />&nbsp;&nbsp;&nbsp;&nbsp;另一特殊情况是当某个拥有6to4和本地IPv6连通性的站点试图访问另一个仅有本地IPv6连通性的站点时，制订一个源地址的选择算法可确保得到站点的本地IPv6地址。在此并不需要选择目的地址，因为只需选择本地IPv6地址即可。 </p><p class="width2"><b>6.6to4转播 </b><br />&nbsp;&nbsp;&nbsp;&nbsp;最为复杂的6to4假设情况是仅有6to4连通性的站点和仅有IPV6连通性的站点进行通信。这可通过同时支持6to4和IPv6连通性的6to4转播来实现。事实上，6to4转播就是一个IPv4/IPv6双层栈路由器。 <br />&nbsp;&nbsp;&nbsp;&nbsp;6to4转播加载路线于IPv6底层组织所附带的2002::/16结构。IPv6网络必须过滤、丢弃任何超过16位的6to4前缀。此外，6to4转播必须加载本地IPv6路由策略允许的6to4连接，其中包括6to4路由器在只支持6to4连接的站点中选择一个BGP4+点对点进程，或是通过一个默认路由到6to4转播。 <br />&nbsp;&nbsp;&nbsp;&nbsp;因此，当一个只支持6to4转播的站点发送信息包给另一个只支持IPv6的站点时，它会发送一个封装的IPv6信息包给6to4转播，而6to4转播会删去 IPv4头（解封装）并把信息包传给那个只支持IPv6的站点。 <br />&nbsp;&nbsp;&nbsp;&nbsp;理论上，上述过程可能需要由多个6to4转播来实现，每一个转播分离一个IPv6的路由域。在实际应用中，所有的IPv6 ISP都被连在一起，即使是手动配置的IPv6 ISP也是如此。 </p><p><span class="width2"><b>结束语 </b><br />&nbsp;&nbsp;&nbsp;&nbsp;IPv6和IPv4比较，它彻底解决了地址空间耗尽和路由表爆炸等问题，而且为IP协议注入了新的内容，使支持安全、主机移动以及多媒体成为IP协议的有机组成部分。协议的设计使路由器处理报文更加简便，扩展性也更好。目前，IPv6的实验网6Bone已经遍布全球，IP协议从IPv4过渡到IPv6已经是历史必然。 （来源：《计算机世界报》任绮年 蔡明）</span><br /></p><p>&nbsp;</p></p>]]>
				</description>
				<guid isPermaLink="false">
					6198030@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-04-1  14:25</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[常指针与指针常量的区别？]]>
				</title>
				<link>http://hike.bokee.com/6169539.html</link>
				<description>
					<![CDATA[<p><p>1 常量指针！如 int b, c; int * const a = &amp;b; <br />表示a是一个常量指针它指向变量b的内存。但是因为是常量指针所以不能再用a指向其他变量，如 a = &amp;c; 错误！可以修改指向内存的值，如:*a = 20; BTW 常量指针声明的时候必须向我那样赋初值。 <br /><br />2 指向常量的指针！如 int b, c; int const *a; a = &amp;b; a = &amp;c; <br />都可以，唯独它指向的内存不能被修改。如：*a=20;这是违法的！错误！ <br /><br />这就是主要区别！ <br /><br />BTW 还有一个记住他们不同形式的技巧！看const关键字，他后面的不可修改，如int * const a = &amp;b; 后面是a,则说明a不能修改！ <br />int const * a = &amp;b;后面是*a则说明*a不可被修改！ <br />~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />在好多书上或MSDN是经常用 const int a=5; <br />int b=6; <br />const int *p=&amp;b; <br />其实 const int* 和int const* 一样，就是常指针 也就是它所指向的数据（在这是int）是常量，它自己的数据类型是const int* <br />还有const int *p=&amp;b;是可以的 虽然b不是常量。 <br />但是 const int a=6; <br />int *p=&amp;a; <br />会报错，因为它消除了a的const属性 <br />********************************************** <br /><br />*******我们可以总结一下******** <br />1. 对于常量（符号常量）和常指针、常引用常对象声明都是一样的 <br />定义格式： const 数据类型 常量名=常量值； <br />或 数据类型 const 常量名=常量值； <br /><br />例如：const int a=7; 或 int const a=7;（符号常量） <br />int b=5; <br />const int *p=&amp;b; 或 int const *p=&amp;b;(常指针） <br />const int &amp;m=b;（常引用） <br />const Point pt; 或 Point const pt; //常对象不能更新 <br />常指针和常引用在功能上有所限制，就是不能通过他们更改其指向的变量的数据（值） <br /><br />2. 指针常量 <br />定义格式： 数据类型 *const 指针常量=常量值； <br />如char ch,*const pch=&amp;ch;(我是一步完成的，你也可以分开） <br />也就是说这个指针本身是个常量，不可改变，即它所指向的地址是固定的。但，ch是可以改变的。 <br /><br />************************************ <br /><br /><br />下面是MSDN中关也常对象的说法 <br />/////////////////////////////////// <br />Initializing Pointers to const Objects <br />A pointer to a const object can be initialized with a pointer to an object that is not const, but not vice versa. For example, the following initialization is legal: <br /><br />Window StandardWindow; <br />const Window* pStandardWindow( &amp;StandardWindow ); <br /><br />In the preceding code, the pointer pStandardWindow is declared as a pointer to a const object. Although StandardWindow is not declared as const, the declaration is acceptable because it does not allow an object not declared as const access to a const object. The reverse of this is as follows: <br /><br />const Window StandardWindow; <br />Window* pStandardWindow( &amp;StandardWindow ); <br /><br />The preceding code explicitly declares StandardWindow as a const object. Initializing the nonconstant pointer pStandardWindow with the address of StandardWindow generates an error because it allows access to the const object through the pointer. That is, it allows removal of the const attribute from the object. <br />/////////////////////////////////////// <br /><br />有问题我们在讨论！ </cq /></p></p>]]>
				</description>
				<guid isPermaLink="false">
					6169539@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-03-18  19:58</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[C/C++编程新手错误语录]]>
				</title>
				<link>http://hike.bokee.com/6168904.html</link>
				<description>
					<![CDATA[<p><p>1．引言<br />　　还记得当年学数学、英语都有个窍门，那就是搞个错题集。经常复习一下这个错题集，就可以避免下次犯同样的错误。而几乎所有的程序员都是从犯错误开始的，我们也很有必要总结一下编程新手的常见错误，本文的目的在于此。文中所列出的都是笔者在项目开发中接触到的新手真实的言谈，笔者学学文革腔调，姑且称之为“错误语录”。</p><p>2．语录<br />（１）“我的程序都是对的，可结果不对”<br />　　想想你的周围，是不是也有人说这样的话？如果你也曾经说过，那就此打住，不要再说这句话，因为这句话只会显示说话者的无知。既然程序都是对的，那为什么结果不对？</p><p>（2）“程序=算法+数据结构”<br />　　如果刚刚学完C语言，我们说这样的话，完全可以理解，而且可以说是正确的。但是如果你是一位即将从事C/C++编程的程序员，那么很遗憾，这个说法只能判错，殊不知，世界上还有另一种说法：<br />　　程序 = 对象　+ 消息<br />　“程序=算法+数据结构”只对面向过程的语言(C)成立，而对面向对象的语言（C++），则只能表述为“程序=对象+消息”。传统的过程式编程语言以过程为中心以算法为驱动，面向对象的编程语言则以对象为中心以消息为驱动。这里的消息是广义的，对象A调用了对象B的成员函数，可看作对象A给B发消息。</p><p>（3）“程序编出来，运行正确就行了”<br />　　运行正确的程序并不一定是好程序，程序员时刻要牢记的一条就是自己写的程序不仅是给自己看的，要让别人也能轻易地看懂。很遗憾，许多的编程新手不能清晰地驾驭软件的结构，对头文件和实现文件的概念含糊不清，写出来的程序可读性很差。</p><p>　　C程序采用模块化的编程思想，需合理地将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求，在模块的划分上主要依据功能。模块由头文件和实现文件组成，对头文件和实现文件的正确使用方法是：<br />　　规则1　头文件(.h)中是对于该模块接口的声明，接口包括该模块提供给其它模块调用的外部函数及外部全局变量，对这些变量和函数都需在.h中文件中冠以extern关键字声明；<br />　　规则2 模块内的函数和全局变量需在.c文件开头冠以static关键字声明；<br />　　规则3 永远不要在.h文件中定义变量；</p><p>　　许多程序员对定义变量和声明变量混淆不清，定义变量和声明变量的区别在于定义会产生内存分配的操作，是汇编阶段的概念；而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量。如：</p><p><br />/*模块1头文件：module1.h*/<br />int a = 5; /* 在模块1的.h文件中定义int a */<br />/*模块１实现文件：module1 .c*/<br />#include “module1.h” /* 在模块1中包含模块1的.h文件 */<br />/*模块2实现文件： module2.c*/<br />#include “module1.h” /* 在模块2中包含模块1的.h文件 */<br />/*模块2 实现文件：module3 .c*/<br />#include “module1.h” /* 在模块3中包含模块1的.h文件 */<br />以上程序的结果是在模块1、2、3中都定义了整型变量a，a在不同的模块中对应不同的地址单元，这明显不符合编写者的本意。正确的做法是：<br />/*模块1头文件：module1.h*/<br />extern int a; /* 在模块1的.h文件中声明int a */<br />/*模块１实现文件：module1 .c*/<br />#include “module1.h” /* 在模块1中包含模块1的.h文件 */<br />int a = 5; /* 在模块1的.c文件中定义int a */<br />/*模块2 实现文件： module2 .c*/<br />#include “module1.h” /* 在模块2中包含模块1的.h文件 */<br />/*模块3 实现文件： module3 .c*/<br />#include “module1.h” 　 /* 在模块3中包含模块1的.h文件 */</p><p>　　这样如果模块1、2、3操作a的话，对应的是同一片内存单元。</p><p>规则4 如果要用其它模块定义的变量和函数，直接包含其头文件即可。<br />许多程序员喜欢这样做，当他们要访问其它模块定义的变量时，他们在本模块文件开头添加这样的语句：<br />extern int externVar;　</p><p>　　抛弃这种做法吧，只要头文件按规则1完成，某模块要访问其它模块中定义的全局变量时，只要包含该模块的头文件即可。</p><p>（4）“数组名就是指针”<br />　　许多程序员对数组名和指针的区别不甚明了，他们认为数组名就是指针，而实际上数组名和指针有很大区别，在使用时要进行正确区分，其区分规则如下：</p><p>　　规则1　数组名指代一种数据结构，这种数据结构就是数组；<br />　　例如：<br />char str[10];<br />char *pStr = str;<br />cout &lt;&lt; sizeof(str) &lt;&lt; endl;<br />cout &lt;&lt; sizeof(pStr) &lt;&lt; endl;</p><p>　　输出结果为：<br />　10<br />4<br />　　这说明数组名str指代数据结构char[10]。</p><p>　　规则2　数组名可以转换为指向其指代实体的指针，而且是一个指针常量，不能作自增、自减等操作，不能被修改；<br />char str[10]; <br />char *pStr = str;<br />str++; //编译出错，提示str不是左值　<br />pStr++; //编译正确</p><p>　　规则3　指向数组的指针则是另外一种变量类型（在WIN32平台下，长度为4），仅仅意味着数组的存放地址；</p><p>　　规则4　数组名作为函数形参时，在函数体内，其失去了本身的内涵，仅仅只是一个指针；很遗憾，在失去其内涵的同时，它还失去了其常量特性，可以作自增、自减等操作，可以被修改。<br />例如：<br />void arrayTest(char str[])<br />{<br />cout &lt;&lt; sizeof(str) &lt;&lt; endl;　　　//输出指针长度<br />　　　 str++; //编译正确 <br />}<br />int main(int argc, char* argv[])<br />{<br />　char str1[10] = &quot;I Love U&quot;;<br />　arrayTest(str1); <br />return 0;<br />}</p><p><br />（5）“整形变量为32位”<br />　　整形变量是不是32位这个问题不仅与具体的CPU架构有关，而且与编译器有关。在嵌入式系统的编程中，一般整数的位数等于CPU字长，常用的嵌入式CPU芯片的字长为8、16、32，因而整形变量的长度可能是8、16、32。在未来64位平台下，整形变量的长度可达到64位。<br />　　长整形变量的长度一般为CPU字长的2倍。<br />　　在数据结构的设计中，优秀的程序员并不会这样定义数据结构（假设为WIN32平台）：<br />typedef struct tagTypeExample<br />{<br />unsigned short x;<br />unsigned int y; <br />}TypeExample;<br />他们这样定义：<br />#define unsigned short UINT16 //16位无符号整数<br />#define unsigned int UINT32 //32位无符号整数<br />typedef struct tagTypeExample<br />{<br />UINT16 x;<br />UINT32 y; <br />}TypeExample;</p><p><br />　　这样定义的数据结构非常具有通用性，如果上述32平台上的数据发送到16位平台上接收，在16位平台上仅仅需要修改UINT16、UINT32的定义：<br />#define unsigned int UINT16 //16位无符号整数<br />#define unsigned long UINT32 //32位无符号整数</p><p>　　几乎所有的优秀软件设计文档都是这样定义数据结构的。</p><p>（6）“switch和if …else…可随意替换”<br />　　switch语句和一堆if…else…的组合虽然功能上完全一样，但是给读者的感受完全不一样。if…else…的感觉是进行条件判断，对特例进行特别处理，在逻辑上是“特殊与一般”的关系，而switch给人的感觉是多个条件的关系是并列的，事物之间不存在特殊与一般的关系，完全“对等”。<br />譬如：<br />//分别对1-10的数字进行不同的处理，用switch<br />switch(num)<br />{<br />case 1:<br />…<br />case 2:<br />…<br />}<br />//对1-10之间的数字进行特殊处理，用if<br />if(num &lt; 10 &amp;&amp; num &gt; 1)<br />{<br />…<br />}<br />else<br />{<br />…<br />}</p><p>　　许多时候，虽然不同的代码可实现完全相同的功能，但是给读者的感觉是完全不同的。譬如无条件循环：<br />while(1)<br />{<br />}</p><p>　　有的程序员这样写：<br />for(;;)<br />{<br />}</p><p>　　这个语法没有确切表达代码的含义，我们从for(;;)看不出什么，只有弄明白for(;;)在C/C++语言中意味着无条件循环才明白其意。而不懂C/C++语言的读者看到while(1)也可猜到这是一个无条件循环。</p><p>（7）“免得麻烦，把类里面的成员函数都搞成public算了”<br />　　许多人编C++程序的时候，都碰到这样的情况，先前把某个成员函数定义成类的private/protected函数，后来发现又要从外面调用这个函数，就轻易地将成员函数改为public类型的。甚至许多程序员为了避免访问的麻烦，干脆把自己添加的成员函数和成员变量都定义成public类型。</p><p>　　殊不知，这是一种规划的失败。在类的设计阶段，我们就要很清晰地知道，这个类的成员函数中哪些是这个类的接口，哪些属于这个类内部的成员函数和变量。一般的准则是接口（public成员）应在满足需求的前提下尽可能简单！</p><p>　　所以不要轻易地将private/protected成员改为public成员，真正的工作应该在规划阶段完成。</p><p>3．结束语<br />　　所有的程序员都要经历一个从糊涂到清晰的过程，文中的错误如果你也犯了，切勿自惭。</p><p>　　更多的错误语录，希望能在后续文章中陆续推出。<br /></p></p>]]>
				</description>
				<guid isPermaLink="false">
					6168904@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-03-18  14:16</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[Window 消息大全使用详解 ]]>
				</title>
				<link>http://hike.bokee.com/6168903.html</link>
				<description>
					<![CDATA[<p><p>消息，就是指Windows发出的一个通知，告诉应用程序某个事情发生了。例如，单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的，这个记录中包含了消息的类型以及其他信息。例如，对于单击鼠标所产生的消息来说，这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg，</p><p>它在Windows单元中是这样声明的：<br />type<br />TMsg = packed record<br />hwnd: HWND; / /窗口句柄<br />message: UINT; / /消息常量标识符<br />wParam: WPARAM ; // 32位消息的特定附加信息<br />lParam: LPARAM ; // 32位消息的特定附加信息<br />time: DWORD; / /消息创建时的时间<br />pt: TPoint; / /消息创建时的鼠标位置<br />end;</p><p>消息中有什么？<br />是否觉得一个消息记录中的信息像希腊语一样？如果是这样，那么看一看下面的解释：<br />hwnd 32位的窗口句柄。窗口可以是任何类型的屏幕对象，因为Win32能够维护大多数可视对象的句柄(窗口、对话框、按钮、编辑框等)。<br />message 用于区别其他消息的常量值，这些常量可以是Windows单元中预定义的常量，也可以是自定义的常量。<br />wParam 通常是一个与消息有关的常量值，也可能是窗口或控件的句柄。<br />lParam 通常是一个指向内存中数据的指针。由于W P a r a m、l P a r a m和P o i n t e r都是3 2位的，<br />因此，它们之间可以相互转换。</p><p>WM_NULL = $0000;<br />WM_CREATE = $0001;<br />应用程序创建一个窗口<br />WM_DESTROY = $0002;<br />一个窗口被销毁<br />WM_MOVE = $0003;<br />移动一个窗口<br />WM_SIZE = $0005;<br />改变一个窗口的大小<br />WM_ACTIVATE = $0006;<br />一个窗口被激活或失去激活状态；<br />WM_SETFOCUS = $0007;<br />获得焦点后<br />WM_KILLFOCUS = $0008;<br />失去焦点<br />WM_ENABLE = $000A;<br />改变enable状态<br />WM_SETREDRAW = $000B;<br />设置窗口是否能重画 <br />WM_SETTEXT = $000C;<br />应用程序发送此消息来设置一个窗口的文本<br />WM_GETTEXT = $000D;<br />应用程序发送此消息来复制对应窗口的文本到缓冲区<br />WM_GETTEXTLENGTH = $000E;<br />得到与一个窗口有关的文本的长度（不包含空字符）<br />WM_PAINT = $000F;<br />要求一个窗口重画自己<br />WM_CLOSE = $0010;<br />当一个窗口或应用程序要关闭时发送一个信号<br />WM_QUERYENDSESSION = $0011;<br />当用户选择结束对话框或程序自己调用ExitWindows函数<br />WM_QUIT = $0012;<br />用来结束程序运行或当程序调用postquitmessage函数 <br />WM_QUERYOPEN = $0013;<br />当用户窗口恢复以前的大小位置时，把此消息发送给某个图标<br />WM_ERASEBKGND = $0014;<br />当窗口背景必须被擦除时（例在窗口改变大小时）<br />WM_SYSCOLORCHANGE = $0015;<br />当系统颜色改变时，发送此消息给所有顶级窗口<br />WM_ENDSESSION = $0016;<br />当系统进程发出WM_QUERYENDSESSION消息后，此消息发送给应用程序，<br />通知它对话是否结束<br />WM_SYSTEMERROR = $0017;<br />WM_SHOWWINDOW = $0018;<br />当隐藏或显示窗口是发送此消息给这个窗口<br />WM_ACTIVATEAPP = $001C;<br />发此消息给应用程序哪个窗口是激活的，哪个是非激活的；<br />WM_FONTCHANGE = $001D;<br />当系统的字体资源库变化时发送此消息给所有顶级窗口<br />WM_TIMECHANGE = $001E;<br />当系统的时间变化时发送此消息给所有顶级窗口<br />WM_CANCELMODE = $001F;<br />发送此消息来取消某种正在进行的摸态（操作）<br />WM_SETCURSOR = $0020;<br />如果鼠标引起光标在某个窗口中移动且鼠标输入没有被捕获时，就发消息给某个窗口<br />WM_MOUSEACTIVATE = $0021;<br />当光标在某个非激活的窗口中而用户正按着鼠标的某个键发送此消息给当前窗口<br />WM_CHILDACTIVATE = $0022;<br />发送此消息给MDI子窗口当用户点击此窗口的标题栏，或当窗口被激活，移动，改变大小<br />WM_QUEUESYNC = $0023;<br />此消息由基于计算机的训练程序发送，通过WH_JOURNALPALYBACK的hook程序<br />分离出用户输入消息<br />WM_GETMINMAXINFO = $0024;<br />此消息发送给窗口当它将要改变大小或位置；<br />WM_PAINTICON = $0026;<br />发送给最小化窗口当它图标将要被重画<br />WM_ICONERASEBKGND = $0027;<br />此消息发送给某个最小化窗口，仅当它在画图标前它的背景必须被重画<br />WM_NEXTDLGCTL = $0028;<br />发送此消息给一个对话框程序去更改焦点位置<br />WM_SPOOLERSTATUS = $002A;<br />每当打印管理列队增加或减少一条作业时发出此消息 <br />WM_DRAWITEM = $002B;<br />当button，combobox，listbox，menu的可视外观改变时发送<br />此消息给这些空件的所有者<br />WM_MEASUREITEM = $002C;<br />当button, combo box, list box, list view control, or menu item 被创建时<br />发送此消息给控件的所有者<br />WM_DELETEITEM = $002D;<br />当the list box 或 combo box 被销毁 或 当 某些项被删除通过LB_DELETESTRING, LB_RESETCONTENT, CB_DELETESTRING, or CB_RESETCONTENT 消息<br />WM_VKEYTOITEM = $002E;<br />此消息有一个LBS_WANTKEYBOARDINPUT风格的发出给它的所有者来响应WM_KEYDOWN消息 <br />WM_CHARTOITEM = $002F;<br />此消息由一个LBS_WANTKEYBOARDINPUT风格的列表框发送给他的所有者来响应WM_CHAR消息 <br />WM_SETFONT = $0030;<br />当绘制文本时程序发送此消息得到控件要用的颜色 <br />WM_GETFONT = $0031;<br />应用程序发送此消息得到当前控件绘制文本的字体<br />WM_SETHOTKEY = $0032;<br />应用程序发送此消息让一个窗口与一个热键相关连<br />WM_GETHOTKEY = $0033;<br />应用程序发送此消息来判断热键与某个窗口是否有关联<br />WM_QUERYDRAGICON = $0037;<br />此消息发送给最小化窗口，当此窗口将要被拖放而它的类中没有定义图标，应用程序能返回一个图标或光标的句柄，当用户拖放图标时系统显示这个图标或光标<br />WM_COMPAREITEM = $0039;<br />发送此消息来判定combobox或listbox新增加的项的相对位置<br />WM_GETOBJECT = $003D;<br />WM_COMPACTING = $0041;<br />显示内存已经很少了<br />WM_WINDOWPOSCHANGING = $0046;<br />发送此消息给那个窗口的大小和位置将要被改变时，来调用setwindowpos函数或其它窗口管理函数<br />WM_WINDOWPOSCHANGED = $0047;<br />发送此消息给那个窗口的大小和位置已经被改变时，来调用setwindowpos函数或其它窗口管理函数<br />WM_POWER = $0048;（适用于16位的windows）<br />当系统将要进入暂停状态时发送此消息<br />WM_COPYDATA = $004A;<br />当一个应用程序传递数据给另一个应用程序时发送此消息<br />WM_CANCELJOURNAL = $004B;<br />当某个用户取消程序日志激活状态，提交此消息给程序<br />WM_NOTIFY = $004E;<br />当某个控件的某个事件已经发生或这个控件需要得到一些信息时，发送此消息给它的父窗口<br />WM_INPUTLANGCHANGEREQUEST = $0050;<br />当用户选择某种输入语言，或输入语言的热键改变<br />WM_INPUTLANGCHANGE = $0051;<br />当平台现场已经被改变后发送此消息给受影响的最顶级窗口<br />WM_TCARD = $0052;<br />当程序已经初始化windows帮助例程时发送此消息给应用程序<br />WM_HELP = $0053;<br />此消息显示用户按下了F1，如果某个菜单是激活的，就发送此消息个此窗口关联的菜单，否则就<br />发送给有焦点的窗口，如果当前都没有焦点，就把此消息发送给当前激活的窗口<br />WM_USERCHANGED = $0054;<br />当用户已经登入或退出后发送此消息给所有的窗口，当用户登入或退出时系统更新用户的具体<br />设置信息，在用户更新设置时系统马上发送此消息；<br />WM_NOTIFYFORMAT = $0055;<br />公用控件，自定义控件和他们的父窗口通过此消息来判断控件是使用ANSI还是UNICODE结构<br />在WM_NOTIFY消息，使用此控件能使某个控件与它的父控件之间进行相互通信<br />WM_CONTEXTMENU = $007B;<br />当用户某个窗口中点击了一下右键就发送此消息给这个窗口<br />WM_STYLECHANGING = $007C;<br />当调用SETWINDOWLONG函数将要改变一个或多个 窗口的风格时发送此消息给那个窗口<br />WM_STYLECHANGED = $007D;<br />当调用SETWINDOWLONG函数一个或多个 窗口的风格后发送此消息给那个窗口<br />WM_DISPLAYCHANGE = $007E;<br />当显示器的分辨率改变后发送此消息给所有的窗口<br />WM_GETICON = $007F;<br />此消息发送给某个窗口来返回与某个窗口有关连的大图标或小图标的句柄；<br />WM_SETICON = $0080;<br />程序发送此消息让一个新的大图标或小图标与某个窗口关联；<br />WM_NCCREATE = $0081;<br />当某个窗口第一次被创建时，此消息在WM_CREATE消息发送前发送；<br />WM_NCDESTROY = $0082;<br />此消息通知某个窗口，非客户区正在销毁<br />WM_NCCALCSIZE = $0083;<br />当某个窗口的客户区域必须被核算时发送此消息<br />WM_NCHITTEST = $0084;//移动鼠标，按住或释放鼠标时发生<br />WM_NCPAINT = $0085;<br />程序发送此消息给某个窗口当它（窗口）的框架必须被绘制时；<br />WM_NCACTIVATE = $0086;<br />此消息发送给某个窗口 仅当它的非客户区需要被改变来显示是激活还是非激活状态；<br />WM_GETDLGCODE = $0087;<br />发送此消息给某个与对话框程序关联的控件，widdows控制方位键和TAB键使输入进入此控件<br />通过响应WM_GETDLGCODE消息，应用程序可以把他当成一个特殊的输入控件并能处理它<br />WM_NCMOUSEMOVE = $00A0;<br />当光标在一个窗口的非客户区内移动时发送此消息给这个窗口 //非客户区为：窗体的标题栏及窗 <br />的边框体<br />WM_NCLBUTTONDOWN = $00A1;<br />当光标在一个窗口的非客户区同时按下鼠标左键时提交此消息<br />WM_NCLBUTTONUP = $00A2;<br />当用户释放鼠标左键同时光标某个窗口在非客户区十发送此消息；<br />WM_NCLBUTTONDBLCLK = $00A3;<br />当用户双击鼠标左键同时光标某个窗口在非客户区十发送此消息<br />WM_NCRBUTTONDOWN = $00A4;<br />当用户按下鼠标右键同时光标又在窗口的非客户区时发送此消息<br />WM_NCRBUTTONUP = $00A5;<br />当用户释放鼠标右键同时光标又在窗口的非客户区时发送此消息<br />WM_NCRBUTTONDBLCLK = $00A6;<br />当用户双击鼠标右键同时光标某个窗口在非客户区十发送此消息<br />WM_NCMBUTTONDOWN = $00A7;<br />当用户按下鼠标中键同时光标又在窗口的非客户区时发送此消息<br />WM_NCMBUTTONUP = $00A8;<br />当用户释放鼠标中键同时光标又在窗口的非客户区时发送此消息<br />WM_NCMBUTTONDBLCLK = $00A9;<br />当用户双击鼠标中键同时光标又在窗口的非客户区时发送此消息<br />WM_KEYFIRST = $0100;<br />WM_KEYDOWN = $0100; <br />//按下一个键<br />WM_KEYUP = $0101; <br />//释放一个键<br />WM_CHAR = $0102; <br />//按下某键，并已发出WM_KEYDOWN， WM_KEYUP消息<br />WM_DEADCHAR = $0103;<br />当用translatemessage函数翻译WM_KEYUP消息时发送此消息给拥有焦点的窗口<br />WM_SYSKEYDOWN = $0104;<br />当用户按住ALT键同时按下其它键时提交此消息给拥有焦点的窗口；<br />WM_SYSKEYUP = $0105;<br />当用户释放一个键同时ALT 键还按着时提交此消息给拥有焦点的窗口<br />WM_SYSCHAR = $0106;<br />当WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函数翻译后提交此消息给拥有焦点的窗口<br />WM_SYSDEADCHAR = $0107;<br />当WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函数翻译后发送此消息给拥有焦点的窗口<br />WM_KEYLAST = $0108;<br />WM_INITDIALOG = $0110;<br />在一个对话框程序被显示前发送此消息给它，通常用此消息初始化控件和执行其它任务<br />WM_COMMAND = $0111;<br />当用户选择一条菜单命令项或当某个控件发送一条消息给它的父窗口，一个快捷键被翻译<br />WM_SYSCOMMAND = $0112;<br />当用户选择窗口菜单的一条命令或当用户选择最大化或最小化时那个窗口会收到此消息<br />WM_TIMER = $0113; //发生了定时器事件<br />WM_HSCROLL = $0114;<br />当一个窗口标准水平滚动条产生一个滚动事件时发送此消息给那个窗口，也发送给拥有它的控件<br />WM_VSCROLL = $0115;<br />当一个窗口标准垂直滚动条产生一个滚动事件时发送此消息给那个窗口也，发送给拥有它的控件 WM_INITMENU = $0116;<br />当一个菜单将要被激活时发送此消息，它发生在用户菜单条中的某项或按下某个菜单键，它允许程序在显示前更改菜单<br />WM_INITMENUPOPUP = $0117;<br />当一个下拉菜单或子菜单将要被激活时发送此消息，它允许程序在它显示前更改菜单，而不要改变全部 <br />WM_MENUSELECT = $011F;<br />当用户选择一条菜单项时发送此消息给菜单的所有者（一般是窗口）<br />WM_MENUCHAR = $0120;<br />当菜单已被激活用户按下了某个键（不同于加速键），发送此消息给菜单的所有者；<br />WM_ENTERIDLE = $0121;<br />当一个模态对话框或菜单进入空载状态时发送此消息给它的所有者，一个模态对话框或菜单进入空载状态就是在处理完一条或几条先前的消息后没有消息它的列队中等待<br />WM_MENURBUTTONUP = $0122;<br />WM_MENUDRAG = $0123;<br />WM_MENUGETOBJECT = $0124;<br />WM_UNINITMENUPOPUP = $0125;<br />WM_MENUCOMMAND = $0126;<br />WM_CHANGEUISTATE = $0127;<br />WM_UPDATEUISTATE = $0128;<br />WM_QUERYUISTATE = $0129; <br />WM_CTLCOLORMSGBOX = $0132;<br />在windows绘制消息框前发送此消息给消息框的所有者窗口，通过响应这条消息，所有者窗口可以通过使用给定的相关显示设备的句柄来设置消息框的文本和背景颜色<br />WM_CTLCOLOREDIT = $0133;<br />当一个编辑型控件将要被绘制时发送此消息给它的父窗口；通过响应这条消息，所有者窗口可以通过使用给定的相关显示设备的句柄来设置编辑框的文本和背景颜色<br />WM_CTLCOLORLISTBOX = $0134;<br />当一个列表框控件将要被绘制前发送此消息给它的父窗口；通过响应这条消息，所有者窗口可以通过使用给定的相关显示设备的句柄来设置列表框的文本和背景颜色 <br />WM_CTLCOLORBTN = $0135;<br />当一个按钮控件将要被绘制时发送此消息给它的父窗口；通过响应这条消息，所有者窗口可以通过使用给定的相关显示设备的句柄来设置按纽的文本和背景颜色<br />WM_CTLCOLORDLG = $0136;<br />当一个对话框控件将要被绘制前发送此消息给它的父窗口；通过响应这条消息，所有者窗口可以通过使用给定的相关显示设备的句柄来设置对话框的文本背景颜色<br />WM_CTLCOLORSCROLLBAR= $0137;<br />当一个滚动条控件将要被绘制时发送此消息给它的父窗口；通过响应这条消息，所有者窗口可以通过使用给定的相关显示设备的句柄来设置滚动条的背景颜色<br />WM_CTLCOLORSTATIC = $0138; <br />当一个静态控件将要被绘制时发送此消息给它的父窗口；通过响应这条消息，所有者窗口可以通过使用给定的相关显示设备的句柄来设置静态控件的文本和背景颜色<br />WM_MOUSEFIRST = $0200;<br />WM_MOUSEMOVE = $0200; <br />// 移动鼠标<br />WM_LBUTTONDOWN = $0201; <br />//按下鼠标左键<br />WM_LBUTTONUP = $0202; <br />//释放鼠标左键<br />WM_LBUTTONDBLCLK = $0203;<br />//双击鼠标左键<br />WM_RBUTTONDOWN = $0204;<br />//按下鼠标右键<br />WM_RBUTTONUP = $0205;<br />//释放鼠标右键<br />WM_RBUTTONDBLCLK = $0206; <br />//双击鼠标右键<br />WM_MBUTTONDOWN = $0207; <br />//按下鼠标中键 <br />WM_MBUTTONUP = $0208; <br />//释放鼠标中键<br />WM_MBUTTONDBLCLK = $0209; <br />//双击鼠标中键<br />WM_MOUSEWHEEL = $020A;<br />当鼠标轮子转动时发送此消息个当前有焦点的控件<br />WM_MOUSELAST = $020A;<br />WM_PARENTNOTIFY = $0210;<br />当MDI子窗口被创建或被销毁，或用户按了一下鼠标键而光标在子窗口上时发送此消息给它的父窗口<br />WM_ENTERMENULOOP = $0211;<br />发送此消息通知应用程序的主窗口that已经进入了菜单循环模式<br />WM_EXITMENULOOP = $0212;<br />发送此消息通知应用程序的主窗口that已退出了菜单循环模式<br />WM_NEXTMENU = $0213;<br />WM_SIZING = 532;<br />当用户正在调整窗口大小时发送此消息给窗口；通过此消息应用程序可以监视窗口大小和位置也可以修改他们<br />WM_CAPTURECHANGED = 533;<br />发送此消息 给窗口当它失去捕获的鼠标时；<br />WM_MOVING = 534;<br />当用户在移动窗口时发送此消息，通过此消息应用程序可以监视窗口大小和位置也可以修改他们；<br />WM_POWERBROADCAST = 536;<br />此消息发送给应用程序来通知它有关电源管理事件；<br />WM_DEVICECHANGE = 537;<br />当设备的硬件配置改变时发送此消息给应用程序或设备驱动程序<br />WM_IME_STARTCOMPOSITION = $010D;<br />WM_IME_ENDCOMPOSITION = $010E;<br />WM_IME_COMPOSITION = $010F;<br />WM_IME_KEYLAST = $010F;<br />WM_IME_SETCONTEXT = $0281;<br />WM_IME_NOTIFY = $0282;<br />WM_IME_CONTROL = $0283;<br />WM_IME_COMPOSITIONFULL = $0284;<br />WM_IME_SELECT = $0285;<br />WM_IME_CHAR = $0286;<br />WM_IME_REQUEST = $0288;<br />WM_IME_KEYDOWN = $0290;<br />WM_IME_KEYUP = $0291;<br />WM_MDICREATE = $0220;<br />应用程序发送此消息给多文档的客户窗口来创建一个MDI 子窗口<br />WM_MDIDESTROY = $0221;<br />应用程序发送此消息给多文档的客户窗口来关闭一个MDI 子窗口<br />WM_MDIACTIVATE = $0222;<br />应用程序发送此消息给多文档的客户窗口通知客户窗口激活另一个MDI子窗口，当客户窗口收到此消息后，它发出WM_MDIACTIVE消息给MDI子窗口（未激活）激活它；<br />WM_MDIRESTORE = $0223;<br />程序 发送此消息给MDI客户窗口让子窗口从最大最小化恢复到原来大小<br />WM_MDINEXT = $0224;<br />程序 发送此消息给MDI客户窗口激活下一个或前一个窗口<br />WM_MDIMAXIMIZE = $0225;<br />程序发送此消息给MDI客户窗口来最大化一个MDI子窗口；<br />WM_MDITILE = $0226;<br />程序 发送此消息给MDI客户窗口以平铺方式重新排列所有MDI子窗口<br />WM_MDICASCADE = $0227;<br />程序 发送此消息给MDI客户窗口以层叠方式重新排列所有MDI子窗口<br />WM_MDIICONARRANGE = $0228;<br />程序 发送此消息给MDI客户窗口重新排列所有最小化的MDI子窗口<br />WM_MDIGETACTIVE = $0229;<br />程序 发送此消息给MDI客户窗口来找到激活的子窗口的句柄<br />WM_MDISETMENU = $0230;<br />程序 发送此消息给MDI客户窗口用MDI菜单代替子窗口的菜单<br />WM_ENTERSIZEMOVE = $0231;<br />WM_EXITSIZEMOVE = $0232;<br />WM_DROPFILES = $0233;<br />WM_MDIREFRESHMENU = $0234;<br />WM_MOUSEHOVER = $02A1;<br />WM_MOUSELEAVE = $02A3;<br />WM_CUT = $0300;<br />程序发送此消息给一个编辑框或combobox来删除当前选择的文本<br />WM_COPY = $0301;<br />程序发送此消息给一个编辑框或combobox来复制当前选择的文本到剪贴板<br />WM_PASTE = $0302;<br />程序发送此消息给editcontrol或combobox从剪贴板中得到数据<br />WM_CLEAR = $0303;<br />程序发送此消息给editcontrol或combobox清除当前选择的内容；<br />WM_UNDO = $0304;<br />程序发送此消息给editcontrol或combobox撤消最后一次操作<br />WM_RENDERFORMAT = $0305；</p><p>WM_RENDERALLFORMATS = $0306;<br />WM_DESTROYCLIPBOARD = $0307;<br />当调用ENPTYCLIPBOARD函数时 发送此消息给剪贴板的所有者<br />WM_DRAWCLIPBOARD = $0308;<br />当剪贴板的内容变化时发送此消息给剪贴板观察链的第一个窗口；它允许用剪贴板观察窗口来<br />显示剪贴板的新内容；<br />WM_PAINTCLIPBOARD = $0309;<br />当剪贴板包含CF_OWNERDIPLAY格式的数据并且剪贴板观察窗口的客户区需要重画；<br />WM_VSCROLLCLIPBOARD = $030A;<br />WM_SIZECLIPBOARD = $030B;<br />当剪贴板包含CF_OWNERDIPLAY格式的数据并且剪贴板观察窗口的客户区域的大小已经改变是此消息通过剪贴板观察窗口发送给剪贴板的所有者；<br />WM_ASKCBFORMATNAME = $030C;<br />通过剪贴板观察窗口发送此消息给剪贴板的所有者来请求一个CF_OWNERDISPLAY格式的剪贴板的名字<br />WM_CHANGECBCHAIN = $030D;<br />当一个窗口从剪贴板观察链中移去时发送此消息给剪贴板观察链的第一个窗口；<br />WM_HSCROLLCLIPBOARD = $030E; <br />此消息通过一个剪贴板观察窗口发送给剪贴板的所有者 ；它发生在当剪贴板包含CFOWNERDISPALY格式的数据并且有个事件在剪贴板观察窗的水平滚动条上；所有者应滚动剪贴板图象并更新滚动条的值；<br />WM_QUERYNEWPALETTE = $030F;<br />此消息发送给将要收到焦点的窗口，此消息能使窗口在收到焦点时同时有机会实现他的逻辑调色板<br />WM_PALETTEISCHANGING= $0310;<br />当一个应用程序正要实现它的逻辑调色板时发此消息通知所有的应用程序<br />WM_PALETTECHANGED = $0311;<br />此消息在一个拥有焦点的窗口实现它的逻辑调色板后发送此消息给所有顶级并重叠的窗口，以此来改变系统调色板 <br />WM_HOTKEY = $0312;<br />当用户按下由REGISTERHOTKEY函数注册的热键时提交此消息<br />WM_PRINT = 791;<br />应用程序发送此消息仅当WINDOWS或其它应用程序发出一个请求要求绘制一个应用程序的一部分；<br />WM_PRINTCLIENT = 792;<br />WM_HANDHELDFIRST = 856;<br />WM_HANDHELDLAST = 863;<br />WM_PENWINFIRST = $0380;<br />WM_PENWINLAST = $038F;<br />WM_COALESCE_FIRST = $0390;<br />WM_COALESCE_LAST = $039F;<br />WM_DDE_FIRST = $03E0;<br />WM_DDE_INITIATE = WM_DDE_FIRST + 0;<br />一个DDE客户程序提交此消息开始一个与服务器程序的会话来响应那个指定的程序和主题名；<br />WM_DDE_TERMINATE = WM_DDE_FIRST + 1;<br />一个DDE应用程序（无论是客户还是服务器）提交此消息来终止一个会话；<br />WM_DDE_ADVISE = WM_DDE_FIRST + 2;<br />一个DDE客户程序提交此消息给一个DDE服务程序来请求服务器每当数据项改变时更新它<br />WM_DDE_UNADVISE = WM_DDE_FIRST + 3;<br />一个DDE客户程序通过此消息通知一个DDE服务程序不更新指定的项或一个特殊的剪贴板格式的项<br />WM_DDE_ACK = WM_DDE_FIRST + 4;<br />此消息通知一个DDE（动态数据交换）程序已收到并正在处理WM_DDE_POKE, WM_DDE_EXECUTE, WM_DDE_DATA, WM_DDE_ADVISE, WM_DDE_UNADVISE, or WM_DDE_INITIAT消息<br />WM_DDE_DATA = WM_DDE_FIRST + 5;<br />一个DDE服务程序提交此消息给DDE客户程序来传递个一数据项给客户或通知客户的一条可用数据项<br />WM_DDE_REQUEST = WM_DDE_FIRST + 6;<br />一个DDE客户程序提交此消息给一个DDE服务程序来请求一个数据项的值；<br />WM_DDE_POKE = WM_DDE_FIRST + 7;<br />一个DDE客户程序提交此消息给一个DDE服务程序，客户使用此消息来请求服务器接收一个未经同意的数据项；服务器通过答复WM_DDE_ACK消息提示是否它接收这个数据项；<br />WM_DDE_EXECUTE = WM_DDE_FIRST + 8;<br />一个DDE客户程序提交此消息给一个DDE服务程序来发送一个字符串给服务器让它象串行命令一样被处理，服务器通过提交WM_DDE_ACK消息来作回应；<br />WM_DDE_LAST = WM_DDE_FIRST + 8;<br />WM_APP = $8000;<br />WM_USER = $0400;<br />此消息能帮助应用程序自定义私有消息；<br />/////////////////////////////////////////////////////////////////////<br />通知消息(Notification message)是指这样一种消息，一个窗口内的子控件发生了一些事情，需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框，以及Windows 95公共控件如树状视图、列表视图等。例如，单击或双击一个控件、在控件中选择部分文本、操作控件的滚动条都会产生通知消息。 <br />按扭<br />B N _ C L I C K E D //用户单击了按钮<br />B N _ D I S A B L E //按钮被禁止<br />B N _ D O U B L E C L I C K E D //用户双击了按钮<br />B N _ H I L I T E //用户加亮了按钮<br />B N _ PA I N T按钮应当重画<br />B N _ U N H I L I T E加亮应当去掉<br />组合框<br />C B N _ C L O S E U P组合框的列表框被关闭<br />C B N _ D B L C L K用户双击了一个字符串<br />C B N _ D R O P D O W N组合框的列表框被拉出<br />C B N _ E D I T C H A N G E用户修改了编辑框中的文本<br />C B N _ E D I T U P D AT E编辑框内的文本即将更新<br />C B N _ E R R S PA C E组合框内存不足<br />C B N _ K I L L F O C U S组合框失去输入焦点<br />C B N _ S E L C H A N G E在组合框中选择了一项<br />C B N _ S E L E N D C A N C E L用户的选择应当被取消<br />C B N _ S E L E N D O K用户的选择是合法的<br />C B N _ S E T F O C U S组合框获得输入焦点<br />编辑框<br />E N _ C H A N G E编辑框中的文本己更新<br />E N _ E R R S PA C E编辑框内存不足<br />E N _ H S C R O L L用户点击了水平滚动条<br />E N _ K I L L F O C U S编辑框正在失去输入焦点<br />E N _ M A X T E X T插入的内容被截断<br />E N _ S E T F O C U S编辑框获得输入焦点<br />E N _ U P D AT E编辑框中的文本将要更新<br />E N _ V S C R O L L用户点击了垂直滚动条消息含义<br />列表框<br />L B N _ D B L C L K用户双击了一项<br />L B N _ E R R S PA C E列表框内存不够<br />L B N _ K I L L F O C U S列表框正在失去输入焦点<br />L B N _ S E L C A N C E L选择被取消<br />L B N _ S E L C H A N G E选择了另一项<br />L B N _ S E T F O C U S列表框获得输入焦点<br /></p></p>]]>
				</description>
				<guid isPermaLink="false">
					6168903@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-03-18  14:15</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[什么是GDI及GDI+]]>
				</title>
				<link>http://hike.bokee.com/6168899.html</link>
				<description>
					<![CDATA[<p><p>1.引言 </p><p>GDI+是Windows XP中的一个子系统，它主要负责在显示屏幕和打印设备输出有关信息，它是一组通过C++类实现的应用程序编程接口。顾名思义，GDI+是以前版本GDI的继承者，出于兼容性考虑，Windows XP仍然支持以前版本的GDI，但是在开发新应用程序的时候，开发人员为了满足图形输出需要应该使用GDI+，因为GDI+对以前的Windows版本中GDI进行了优化，并添加了许多新的功能。&nbsp; </p><p>作为图形设备接口的GDI+使得应用程序开发人员在输出屏幕和打印机信息的时候无需考虑具体显示设备的细节,他们只需调用GDI+库输出的类的一些方法即可完成图形操作,真正的绘图工作由这些方法交给特定的设备驱动程序来完成,GDI+使得图形硬件和应用程序相互隔离.从而使开发人员编写设备无关的应用程序变得非常容易。 </p><p>2.GDI+新增功能 </p><p>(1)渐变的画刷(Gradient Brushes)&nbsp; </p><p>GDI+允许用户创建一个沿路径或直线渐变的画刷,来填充外形(shapes),路径(paths),区域(regions),渐变画刷同样也可以画直线、曲线、路径，当你用一个线形画刷填充一个外形(shapes)时，颜色就能够沿外形逐渐变化。 </p><p>(2)基数样条函数（Cardinal Splines）&nbsp; </p><p>GDI＋支持基数样条函数，而GDI不支持。基数样条是一组单个曲线按照一定的顺序连接而成的一条较大曲线。样条由一系列点指定，并通过每一个指定的点。由于基数样条平滑地穿过组中的每一个点（不出现尖角），因而它比用直线连接创建的路径更精确。下面是分别使用两种方法创建的图形，一个使用基数样条，一个使用直线。&nbsp; </p><p>(3)持久路径对象（Persistent Path Objects） </p><p>在GDI中，路径属于设备描述表（DC），画完后路径就会被破坏。在GDI+中，绘图工作由Graphics对象来完成，你可以创建几个与Graphics分开的路径对象，绘图操作时路径对象不被破环，这样你就可以多次使用同一个路径对象画路径了。&nbsp; </p><p>(4）变形和矩阵对象（Transformations ＆ Matrix Object） </p><p>GDI+提供了矩阵对象，一个非常强大的工具，使得编写图形的旋转、平移、缩放代码变得非常容易。一个矩阵对象总是和一个图形变换对相联系起来，比方说，路径对象（PATH）有一个Transform方法，它的一个参数能够接受矩阵对象的地址，每次路径绘制时，它能够根据变换矩阵绘制。下面的图形是一个图形变换前后的例子，变换按照先缩放后旋转完成。&nbsp; </p><p>(5）可伸缩区域（Scalable Regions） </p><p>GDI+ 在区域（regions）方面对GDI进行了改进,在GDI中，Regions存储在设备坐标中，对Regions 唯一可进行图形变换的操作就是对区域进行平移。而GDI+用世界坐标存储区域(Regions),允许对区域进行任何图形变换（譬如如图所示的缩放），图形变换以变换矩阵存储，下面例子是一个区域变换前后的例子（缩放、旋转、平移）&nbsp; </p><p>（6）Alpha Blending（混合）&nbsp; </p><p>你可能会注意到上面显示的图形，红色未平移区域与变换后区域有一部分交叉区域，这一部分形成的梦幻效果就是由GDI+支持的Alpha Blending（混合）实现的,利用alpha融合，你可以指定填充颜色的透明度，透明颜色与背景色相互融合，填充色越透明，背景色显示越清晰，下图所示的四个椭圆被填充了同样的颜色，但由于拥有不同的透明度而呈现不同的显示效果。&nbsp; </p><p>（7）多种图像格式支持.&nbsp; </p><p>图像在图形界面程序中占有举足轻重的地位，GDI＋除了支持BMP等GDI支持的图形格式外，还支持JPEG（Joint Photographic Experts Group）、GIF（Graphics Interchange Format）、PNG（Exchangeable Image File）、TIFF（Tag Image File Format）等图像格式，你可以直接在程序中使用这些图片文件，而无需考虑它们所用压缩算法。&nbsp; </p><p>（8）其它。&nbsp; </p><p>GDI+还将支持其它技术，譬如重新着色、颜色校正、元数据、图形容器，也许这些功能我们会在将来的WindowsXP或者Microsoft VisualStudio。Net中看到.&nbsp; </p><p>3.编程模式的改变 Device Contexts（设备描述表）, Handles（句柄）, 和 Graphics Objects（图形对象） </p><p>如果你曾经使用过GDI编写过应用程序，你肯定对设备描述表（DC）的概念非常熟悉，设备描述表是Windows使用的一个数据结构，用于存储具体设备能力和与如何在设备上重绘一些项目的有关属性信息。而且视频设备的设备描述表还与特定的窗口有关。首先你必须获得一个设备描述表句柄，然后在图形绘制时，你把这个句柄作为一个参数传递给GDI图形绘制函数。当然你也可以把它传递给获得或设置设备描述表有关属性的函数。&nbsp; </p><p>利用GDI+函数，你不必使用句柄或者设备描述表。相反，你可以简单地创建一个图形对象（Graphics），然后以你熟悉的面向对象的编程方式调用它的方法即可，譬如myGraphicsObject.DrawLine(parameters)。Graphics对象是GDI+的核心，正如设备描述表是GDI的核心一样，设备描述表（DC）和图形对象（Graphics）在不同的环境下扮演着同样的角色，发挥着类似的作用，但是两者也存在着这质的不同。前者使用基于句柄的编程方法而后者使用面向对象的编程方法。&nbsp; </p><p>图形对象和设备对象一样，与屏幕的显示窗口有关，它包含着与项目重绘有关的属性信息（譬如平滑度），然而图形对象并没有像GDI那样与Pen(画笔)、Path（路径）、Image(图像)、Font（字体）等搅在一起。在GDI中，所有与绘图有关的绘图对象必须选入指定设备描述表中（使用SelectObject函数），才能被指定的设备描述表所使用。而在GDI+中，你只需把这些绘图对象作为一个参数传递给图形对象Graphics方法调用即可，每一个图形对象所使用的绘图工具至于它调用方法使用的参数有关，它可以通过参数使用多种Pen和Brush绘图，而不是与特定的笔和画刷联系在一起。 </p><p>GDI是Graphics Device Interface的缩写，含义是图形设备接口，它的主要任务是负责系统与绘图程序之间的信息交换，处理所有Windows程序的图形输出。 </p><p>在Windows操作系统下，绝大多数具备图形界面的应用程序都离不开GDI，我们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形，文本等操作。GDI的出现使程序员无需要关心硬件设备及设备驱动，就可以将应用程序的输出转化为硬件设备上的输出，实现了程序开发者与硬件设备的隔离，大大方便了开发工作。 </p><p>GDI是如何实现输出的？ </p><p>要想在屏幕或者其它输出设备上输出图形或者文字，那么我们就必须先获得一个称为设备描述表( DC:Device Context）的对象的句柄，以它为参数，调用各种GDI函数实现各种文字或图形的输出。 </p><p>设备描述表是GDI内部保存数据的一种数据结构，此结构中的属性内容与特定的输出设备（显示器，打印机等）相关，属性定义了GDI函数的工作细节，在稍后我们将看到如何使用TextOut函数输出文字，在这里属性确定了文字的颜色，x坐标和y坐标映射到窗口显示区域的方式等。 </p><p>设备描述表句柄一旦获得，那么系统将使用默认的属性值填充设备描述表结构。 </p><p>如果有必要，我们可以使用一些GDI函数获取和改变设备描述表中的属性值。 <br /></p></p>]]>
				</description>
				<guid isPermaLink="false">
					6168899@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-03-18  14:14</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[五大内存分区]]>
				</title>
				<link>http://hike.bokee.com/6168896.html</link>
				<description>
					<![CDATA[<p>在C++中，内存分成5个区，他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。<br />&nbsp;&nbsp;&nbsp; 栈，就是那些由编译器在需要的时候分配，在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。<br />&nbsp;&nbsp;&nbsp; 堆，就是那些由new分配的内存块，他们的释放编译器不去管，由我们的应用程序去控制，一般一个new就要对应一个delete。如果程序员没有释放掉，那么在程序结束后，操作系统会自动回收。<br />&nbsp;&nbsp;&nbsp; 自由存储区，就是那些由malloc等分配的内存块，他和堆是十分相似的，不过它是用free来结束自己的生命的。<br />&nbsp;&nbsp;&nbsp; 全局/静态存储区，全局变量和静态变量被分配到同一块内存中，在以前的C语言中，全局变量又分为初始化的和未初始化的，在C++里面没有这个区分了，他们共同占用同一块内存区。<br />&nbsp;&nbsp;&nbsp; 常量存储区，这是一块比较特殊的存储区，他们里面存放的是常量，不允许修改（当然，你要通过非正当手段也可以修改，而且方法很多）<br />明确区分堆与栈<br />&nbsp;&nbsp;&nbsp; 在bbs上，堆与栈的区分问题，似乎是一个永恒的话题，由此可见，初学者对此往往是混淆不清的，所以我决定拿他第一个开刀。<br />&nbsp;&nbsp;&nbsp; 首先，我们举一个例子：<br />&nbsp;&nbsp;&nbsp; void f() { int* p=new int[5]; } <br />&nbsp;&nbsp;&nbsp; 这条短短的一句话就包含了堆与栈，看到new，我们首先就应该想到，我们分配了一块堆内存，那么指针p呢？他分配的是一块栈内存，所以这句话的意思就是：在栈内存中存放了一个指向一块堆内存的指针p。在程序会先确定在堆中分配内存的大小，然后调用operator new分配内存，然后返回这块内存的首地址，放入栈中，他在VC6下的汇编代码如下：<br />&nbsp;&nbsp;&nbsp; 00401028&nbsp;&nbsp; push&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14h<br />&nbsp;&nbsp;&nbsp; 0040102A&nbsp;&nbsp; call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; operator new (00401060)<br />&nbsp;&nbsp;&nbsp; 0040102F&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; esp,4<br />&nbsp;&nbsp;&nbsp; 00401032&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-8],eax<br />&nbsp;&nbsp;&nbsp; 00401035&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eax,dword ptr [ebp-8]<br />&nbsp;&nbsp;&nbsp; 00401038&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dword ptr [ebp-4],eax<br />&nbsp;&nbsp;&nbsp; 这里，我们为了简单并没有释放内存，那么该怎么去释放呢？是delete p么？澳，错了，应该是delete []p，这是为了告诉编译器：我删除的是一个数组，VC6就会根据相应的Cookie信息去进行释放内存的工作。<br />&nbsp;&nbsp;&nbsp; 好了，我们回到我们的主题：堆和栈究竟有什么区别？ <br />&nbsp;&nbsp;&nbsp; 主要的区别由以下几点：<br />&nbsp;&nbsp;&nbsp; 1、管理方式不同；<br />&nbsp;&nbsp;&nbsp; 2、空间大小不同；<br />&nbsp;&nbsp;&nbsp; 3、能否产生碎片不同；<br />&nbsp;&nbsp;&nbsp; 4、生长方向不同；<br />&nbsp;&nbsp;&nbsp; 5、分配方式不同；<br />&nbsp;&nbsp;&nbsp; 6、分配效率不同；<br />&nbsp;&nbsp;&nbsp; 管理方式：对于栈来讲，是由编译器自动管理，无需我们手工控制；对于堆来说，释放工作由程序员控制，容易产生memory leak。<br />&nbsp;&nbsp;&nbsp; 空间大小：一般来讲在32位系统下，堆内存可以达到4G的空间，从这个角度来看堆内存几乎是没有什么限制的。但是对于栈来讲，一般都是有一定的空间大小的，例如，在VC6下面，默认的栈空间大小是1M（好像是，记不清楚了）。当然，我们可以修改：&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; 打开工程，依次操作菜单如下：Project-&gt;Setting-&gt;Link，在Category 中选中Output，然后在Reserve中设定堆栈的最大值和commit。<br />注意：reserve最小值为4Byte；commit是保留在虚拟内存的页文件里面，它设置的较大会使栈开辟较大的值，可能增加内存的开销和启动时间。<br />&nbsp;&nbsp;&nbsp; 碎片问题：对于堆来讲，频繁的new/delete势必会造成内存空间的不连续，从而造成大量的碎片，使程序效率降低。对于栈来讲，则不会存在这个问题，因为栈是先进后出的队列，他们是如此的一一对应，以至于永远都不可能有一个内存块从栈中间弹出，在他弹出之前，在他上面的后进的栈内容已经被弹出，详细的可以参考数据结构，这里我们就不再一一讨论了。<br />&nbsp;&nbsp;&nbsp; 生长方向：对于堆来讲，生长方向是向上的，也就是向着内存地址增加的方向；对于栈来讲，它的生长方向是向下的，是向着内存地址减小的方向增长。<br />&nbsp;&nbsp;&nbsp; 分配方式：堆都是动态分配的，没有静态分配的堆。栈有2种分配方式：静态分配和动态分配。静态分配是编译器完成的，比如局部变量的分配。动态分配由alloca函数进行分配，但是栈的动态分配和堆是不同的，他的动态分配是由编译器进行释放，无需我们手工实现。<br />&nbsp;&nbsp;&nbsp; 分配效率：栈是机器系统提供的数据结构，计算机会在底层对栈提供支持：分配专门的寄存器存放栈的地址，压栈出栈都有专门的指令执行，这就决定了栈的效率比较高。堆则是C/C++函数库提供的，它的机制是很复杂的，例如为了分配一块内存，库函数会按照一定的算法（具体的算法可以参考数据结构/操作系统）在堆内存中搜索可用的足够大小的空间，如果没有足够大小的空间（可能是由于内存碎片太多），就有可能调用系统功能去增加程序数据段的内存空间，这样就有机会分到足够大小的内存，然后进行返回。显然，堆的效率比栈要低得多。<br />&nbsp;&nbsp;&nbsp; 从这里我们可以看到，堆和栈相比，由于大量new/delete的使用，容易造成大量的内存碎片；由于没有专门的系统支持，效率很低；由于可能引发用户态和核心态的切换，内存的申请，代价变得更加昂贵。所以栈在程序中是应用最广泛的，就算是函数的调用也利用栈去完成，函数调用过程中的参数，返回地址，EBP和局部变量都采用栈的方式存放。所以，我们推荐大家尽量用栈，而不是用堆。<br />&nbsp;&nbsp;&nbsp; 虽然栈有如此众多的好处，但是由于和堆相比不是那么灵活，有时候分配大量的内存空间，还是用堆好一些。<br />&nbsp;&nbsp;&nbsp; 无论是堆还是栈，都要防止越界现象的发生（除非你是故意使其越界），因为越界的结果要么是程序崩溃，要么是摧毁程序的堆、栈结构，产生以想不到的结果,就算是在你的程序运行过程中，没有发生上面的问题，你还是要小心，说不定什么时候就崩掉，那时候debug可是相当困难的：）<br />&nbsp;&nbsp;&nbsp; 对了，还有一件事，如果有人把堆栈合起来说，那它的意思是栈，可不是堆，呵呵，清楚了？<br /></p>]]>
				</description>
				<guid isPermaLink="false">
					6168896@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2007-03-18  14:13</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[无线网攻击工具进攻方法及防范技巧]]>
				</title>
				<link>http://hike.bokee.com/5834910.html</link>
				<description>
					<![CDATA[<p><p>对无线网安全攻防有兴趣的人应该都需要一套工具，英特网上有很多免费的工具。本文不求全面，但求能提供一些指导和建议。&nbsp; <br />&nbsp;<br />找到无线网络 <br />&nbsp;<br />找到无线网络是攻击的第一步，这里推荐两款常用工具: <br />&nbsp;<br />1、Network Stumbler a.k.a NetStumbler。这个基于Windows的工具可以非常容易地发现一定范围内广播出来的无线信号，还可以判断哪些信号或噪音信息可以用来做站点测量。 <br />&nbsp;<br />2、Kismet。NetStumbler缺乏的一个关键功能就是显示哪些没有广播SSID的无线网络。如果将来想成为无线安全专家，您就应该认识到访问点(Access Points)会常规性地广播这个信息。Kismet会发现并显示没有被广播的那些SSID，而这些信息对于发现无线网络是非常关键的。 <br />&nbsp;<br />连上找到的无线网络 <br />&nbsp;<br />发现了一个无线网络后，下一步就是努力连上它。如果该网络没有采用任何认证或加密安全措施，你可以很轻松地连上它的SSID。如果SSID没有被广播，你可以用这个SSID的名称创建一个文件。如果无线网络采用了认证和/或加密措施，也许，你需要以下工具中的某一个。 <br />&nbsp;<br />1、Airsnort。这个工具非常好用，可以用来嗅探并破解WEP密钥。很多人都用WEP，当然比什么都不用要好。在用这个工具时你会发现它捕获大量抓来的数据包，来破解WEP密钥。还有其它的工具和方法，可以用来强制无线网络上产生的流量去缩短破解密钥所需时间，不过Airsnort并不具有这个功能。 <br />&nbsp;<br />2、CowPatty。这个工具被用作暴力破解WPA-PSK，因为家庭无线网络很少用WEP。这个程序非常简单地尝试一个文章中各种不同的选项，来看是否某一个刚好和预共享的密钥相符。 <br />&nbsp;<br />3、ASLeap。如果某无线网络用的是LEAP，这个工具可以搜集通过网络传输的认证信息，并且这些抓取的认证信息可能会被破解。LEAP不对认证信息提供保护，这也正是LEAP可以被攻击的主要原因。 <br />&nbsp;<br />抓取无线网上的信息 <br />&nbsp;<br />不管你是不是直接连到了无线网络，只要所在的范围内有无线网络存在，就会有信息传递。要看到这些信息，你需要一个工具。 <br />&nbsp;<br />这就是Ethereal。毫无疑问，这个工具非常有价值。Ethereal可以扫描无线和以太网信息，还具备非常强的过滤能力。它还可以嗅探出802.11管理信息，也可被用作嗅探非广播SSID。 <br />&nbsp;<br />前面提高的工具，都是你无线网络安全工具包中所必须的。熟悉这些工具最简单的办法就是在一个可控的实验环境下使用它们。这些工具都可以在英特网上免费下载到。 <br />&nbsp;<br />防范这些工具 <br />&nbsp;<br />知道怎样使用上述工具是非常重要的，不过，知道怎样防范这些工具、保护你的无线网络安全更重要。 <br />&nbsp;<br />防范NetStumbler:不要广播你的SSID，保证你的WLAN受高级认证和加密措施的保护。 <br />&nbsp;<br />防范Kismet:没有办法让Kismet找不到你的WLAN，所以一定要保证有高级认证和加密措施。 <br />&nbsp;<br />防范Airsnort:使用128比特的，而不是40比特的WEP加密密钥，这样可以让破解需要更长时间。如果你的设备支持的话，使用WPA或WPA2，不要使用WEP。 <br />&nbsp;<br />防范Cowpatty:选用一个长的复杂的WPA共享密钥。密钥的类型要不太可能存在于黑客归纳的文件列表中，这样破坏者猜测你的密钥就需要更长的时间。如果是在交互场合，不要用共享密钥使用WPA，用一个好的EAP类型保护认证，限制账号退出之前不正确猜测的数目。 <br />&nbsp;<br />防范ASLeap:使用长的复杂的认证，或者转向EAP-FAST或另外的EAP类型。 <br />&nbsp;<br />防范Ethereal:使用加密，这样任何被嗅探出的信息就很难或几乎不可能被破解。WPA2，使用AES算法，普通黑客是不可能破解的。WEP也会加密数据。在一般不提供加密的公共无线网络区域，使用应用层的加密，像Simplite，来加密IM会话，或使用SSL。对于需要交互的用户，使用IPSec VPN，并关闭分隧道功能。这就强制所有的流量都必须通过加密隧道，可能是被DES、3DES或AES加密的。</p>]]>
				</description>
				<guid isPermaLink="false">
					5834910@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  18:31</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[对局域网用户的限制技术和反限制技巧]]>
				</title>
				<link>http://hike.bokee.com/5834900.html</link>
				<description>
					<![CDATA[<p><p>可能现在对局域网上网用户限制比较多，比如不能上一些网站 ，不能玩某些游戏，不能上MSN，端口限制等等，一般就是通过 代理服务器上的软件进行限制，如现在谈的最多的ISA Server 2004，或者是通过硬件防火墙进行过滤。下面谈谈如何 突破限制，需要分限制情况进行说明：&nbsp; <br />&nbsp;<br />一、单纯的限制某些网站，不能访问，网络游戏（比如 联众）不能玩，这类限制一般是限制了欲访问的IP地址。 <br />&nbsp;<br />对于这类限制很容易突破，用普通的HTTP代理就可以了 ，或者SOCKS代理也是可以的。现在网上找HTTP代理还是很容易 的，一抓一大把。在IE里加了HTTP代理就可以轻松访问目的网 站了。 <br />&nbsp;<br />二、限制了某些协议，如不能FTP了等情况，还有就是 限制了一些网络游戏的服务器端IP地址，而这些游戏又不支持 普通HTTP代理。 <br />&nbsp;<br />这种情况可以用SOCKS代理，配合Sockscap32软件，把 软件加到SOCKSCAP32里，通过SOCKS代理访问。一般的程序都可 以突破限制。对于有些游戏，可以考虑Permeo Security Driver 这个软件。如果连SOCKS也限制了，那可以用 socks2http了，不会连HTTP也限制了吧。 <br />&nbsp;<br />三、基于包过滤的限制，或者禁止了一些关键字。这类 限制就比较强了，一般是通过代理服务器或者硬件防火墙做的 过滤。比如：通过ISA Server 2004禁止MSN ，做了包过滤。这类限制比较难突破，普通的代 理是无法突破限制的。 <br />&nbsp;<br />这类限制因为做了包过滤，能过滤出关键字来，所以要 使用加密代理，也就是说中间走的HTTP或者SOCKS代理的数据流 经过加密，比如跳板，SSSO， FLAT等，只要代理加密了就可以突破了， 用这些软件再配合 Sockscap32，MSN就可以上了。 这类限制就不起作用了。&nbsp;<br />&nbsp;<br />四、基于端口的限制，限制了某些端口，最极端的情况 是限制的只有80端口可以访问，也就只能看看网页，连OUTLOOK 收信，FTP都限制了。当然对于限制几个特殊端口，突破原理一 样。 <br />&nbsp;<br />这种限制可以通过以下办法突破： <br />1、找普通 HTTP80端口的代理，12.34.56.78:80，象这样的，配合 socks2http，把HTTP代理装换成SOCKS代理，然后再配合 SocksCap32，就很容易突破了。这类突破办法中间走的代理未 加密。通通通软件也有这个功能。 <br />2、用类似FLAT软件 ，配合SocksCap32，不过所做的FLAT代理最好也是80端口，当 然不是80端口也没关系，因为FLAT还支持再通过普通的HTTP代 理访问，不是80端口，就需要再加一个80端口的HTTP 代理。这类突破办法中间走的代理加密，网管不知道中间所走 的数据是什么。代理跳板也可以做到，不过代理仍然要80端口 的。对于单纯是80端口限制，还可以用一些端口转换的技术突 破限制。 <br />&nbsp;<br />五、以上一些限制综合的，比如有限制IP的，也有限制 关键字，比如封MSN，还有限制端口的情况。 <br />&nbsp;<br />一般用第四种情况的第二个办法就可以完全突破限制。 只要还允许上网，呵呵，所有的限制都可以突破 <br />六、还有一种情况就是你根本就不能上网，没给你上网 的权限或者IP，或者做IP与MAC地址绑定了。&nbsp; <br />&nbsp;<br />两个办法： <br />&nbsp;<br />1、你在公司应该有好朋友吧，铁哥们，铁姐们都行， 找一个能上网的机器，借一条通道，装一个小软件就可以解决 问题了，FLAT应该可以，有密钥，别人也上不了，而且可以自 己定义端口。。其他能够支持这种方式代 理的软件也可以。我进行了一下测试，情况如下：局域网环境 ，有一台代理上网的服务器，限定了一部分IP， 给予上网权限，而另一部分IP不能上网，在硬件防火墙或者是 代理服务器上做的限制。我想即使做MAC地址与IP绑定也没有用 了，照样可以突破这个限制。 <br />&nbsp;<br />在局域网内设置一台能上网的机器，然后把我机器的IP 设置为不能上网的，然后给那台能上网的机器装FLAT服务器端 程序，只有500多K， 本机通过FLAT客户端，用SOCKSCAP32加一些软件，如IE，测试 上网通过，速度很快，而且传输数据还是加密的，非常棒。&nbsp; <br />&nbsp;<br />2、和网络管理员搞好关系，一切都能搞定，网络管理 员什么权限都有，可以单独给你的IP开无任何限制的，前提是 你不要给网络管理员带来麻烦，不要影响局域网的正常运转。 这可是最好的办法了。&nbsp; <br />&nbsp;<br />另外，在局域网穿透防火墙，还有一个办法，就是用 HTTPTUNNEL，用这个软件需要服务端做配合，要运行 httptunnel的服务端，这种方法对局域网端口限制很有效。&nbsp; <br />&nbsp;<br />隐通道技术就是借助一些软件，可以把防火墙不允许的协议 封装在已被授权的可行协议内，从而通过防火墙，端口转换技 术也是把不允许的端口转换成允许通过的端口，从而突破防火 墙的限制。这类技术现在有些软件可以做到，HACKER经常用到 这类技术。 <br />&nbsp;<br />HTTPTunnel，Tunnel这个英文单词的意思是隧道，通常 HTTPTunnel被称之为HTTP暗道，它的原理就是将数据伪装成 HTTP的数据形式来穿过防火墙，实际上是在HTTP请求中创建了 一个双向的虚拟数据连接来穿透防火墙。说得简单点， 就是说在防火墙两边都设立一个转换程序，将原来需要发送或 接受的数据包封装成HTTP请求的格式骗过防火墙，所以它不需 要别的代理服务器而直接穿透防火墙。HTTPTunnel刚开始时只 有Unix版本，现在已经有人把它移植到Window平台上了，它包 括两个程序，htc和hts，其中htc是客户端，而hts是服务器端 ，我们现在来看看我是如何用它们的。比如开了FTP的机器的IP 是192.168.1.231，我本地的机器的IP是192.168.1.226，现在 我本地因为防火墙的原因无法连接到 FTP上，现在用HTTPTunnel的过程如下：&nbsp; <br />&nbsp;<br />第一步：在我的机器上（192.168.1.226）启动 HTTPTunnel客户端。启动MS-DOS的命令行方式，然后执行htc -F 8888 192.168.1.231:80命令，其中htc是客户端程序，-f参数表示将 来自192.168.1.231:80的数据全部转发到本机的8888端口，这 个端口可以随便选，只要本机没有占用就可以。&nbsp; <br />&nbsp;<br />然后我们用Netstat看一下本机现在开放的端口，发现 8888端口已在侦听。 <br />&nbsp;<br />第二步：在对方机器上启动HTTPTunnel的服务器端，并 执行命令 <br />&nbsp;<br />“hts -f localhost:21 80”，这个命令的意思是说把本机21端口发出去的数据全部通 过80端口中转一下，并且开放80端口作为侦听端口，再用 Neststat看一下他的机器，就会发现80端口现在也在侦听状态 。&nbsp; <br />&nbsp;<br />第三步：在我的机器上用FTP连接本机的8888端口，现 在已经连上对方的机器了。 <br />&nbsp;<br />可是，人家看到的怎么是127.0.0.1而不是 192.168.1.231的地址？因为我现在是连接本机的8888端口，防 火墙肯定不会有反应，因为我没往外发包，当然局域网的防火 墙不知道了。现在连接上本机的8888端口以后，FTP的数据包不 管是控 制信息还是数据信息，都被htc伪装成HTTP数据包然后发过去， 在防火墙看来，这都是正常数据，相当于欺骗了防火墙。&nbsp; <br />&nbsp;<br />需要说明的是，这一招的使用需要其他机器的配合，就 是说要在他的机器上启动一个hts，把他所提供的服务，如FTP 等重定向到防火墙所允许的80端口上，这样才可以成功绕过防 火墙！肯定有人会问，如果对方的机器上本身就有WWW服务，也 就是说他的80端口 在侦听，这么做会不会冲突？HTTPTunnel的优点就在于，即使 他的机器以前80端口开着，现在这么用也不会出现什么问题， 正常的Web访问仍然走老路子，重定向的隧道服务也畅通无阻！ </p>]]>
				</description>
				<guid isPermaLink="false">
					5834900@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  18:28</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[Windows系统中15个释放系统资源的技巧]]>
				</title>
				<link>http://hike.bokee.com/5834861.html</link>
				<description>
					<![CDATA[<p><p>专区推荐：注册表应用专区 <br />　　点击菜单“ 开始” |“ 运行” ，在文本框内键入services.msc，桌面上将会弹出一个服务窗口，列举出了目前系统正在运行的所有服务项目。你会注意到，大多数服务的“ 启动类型” 都被设置为“ 自动” ，说明它们都是在后台自动运行的。下面的表格中列出的15项服务都属于不必要的，用户大可放心地将它们设置为手动运行— — 如果胆子够大的话，干脆右击它们，选择快捷菜单中的“ 停止” ，中止这些服务。然后，再选择“ 属性” ，根据个人需要设置每项服务的“ 启动类型：” 。即使日后发现由于修改服务的设置而导致系统出现故障，也没关系，重新启动相关服务并将它们的启动类型设置为“ 自动” 即可。</p><p>　　警报器 (Alerter)</p><p>　　如果不需要监视网络服务器的话(与Messenger服务一样)，一般家用计算机根本不需要传送或接收计算机系统管理来的警示。</p><p>　　作用：通知选取的使用者及计算机系统管理警示。如果停止这个服务，使用系统管理警示的程序将不会收到通知，所有依存于它的服务将无法启动。</p><p>　　自动更新 (Automatic Updates)</p><p>　　如果停用此服务，可以手动从Windows Update 网站上更新操作系统。</p><p>　　作用：启用重要 Windows 更新的下载及安装。允许Windows于自动联机时，在后台到 Microsoft Servers 自动检查和下载更新修补程序 。</p><p>　　计算机浏览器 (Computer Browser)</p><p>　　一般家庭用计算机不需要，除非你的计算机连在局域网上。</p><p>　　作用：维护网络上更新的计算机清单，并将这个清单提供给做为浏览器的计算机。如果停止这个服务，这个清单将不会被更新或维护，所有依存于它的服务将无法启动。 </p><p>　　分布式连结追踪客户端 (Distributed Link Tracking Client)</p><p>　　独立作业的计算机，或是连接在小型家庭网络中的计算机都不需要。</p><p>　　作用：维护计算机中或网络/网域不同计算机中 NTFS 档案间的连接。</p><p>　　应用程序错误报告 (Error Reporting Service)</p><p>　　如果你已经厌倦了每次程序出故障时都发送错误报告，也根本不指望能够收到微软公司的回信，可以停止这项服务。</p><p>　　作用：允许对执行于非标准环境中的服务和应用程序的错误报告。</p><p>　　说明及支持 (Help and Support)</p><p>　　如果不使用，就将它关闭— — 万一需要使用帮助文件，它将会自动切换回“ 自动” 的启动类型设置。作用：让说明及支持中心能够在这台计算机上执行。如果这个服务停止，将无法使用说明及支持中心，它的所有依存服务将无法启动。</p><p>　　IP安全性服务(IPSEC Services)</p><p>　　如果你的计算机并非处于虚拟私人网络或安全域当中，一般不需要这项服务。</p><p>　　作用：管理 IP 安全性原则并启动 ISAKMP/Oakley (IKE) 及 IP 安全性驱动程序，协助保护经由网络传送的数据。</p><p>　　便携的媒体序号(Portable Media Serial Number)</p><p>　　如果你的计算机没有任何便携媒体播放器的话，就不需要。</p><p>　　作用：获得系统中媒体播放器的序列号，用于控制盗版音乐文件复制到便携播放器上，如MP3、MD等。</p><p>　　远程登录 (Remote Registry Service)</p><p>　　基于安全性的理由，如果没有特别的需求，建议最好关了它。而且，该项服务只有Windows XP Pro才用得着。</p><p>　　作用：启用远程使用者修改这个计算机上的登录设定。如果这个服务被停止，登录只能由这个计算机上的使用者修改，任何明确依存于它的服务将无法启动。</p><p>　　二级登录(Secondary Logon)</p><p>　　基于安全性的理由，建议将该项服务的启动类型设置为“ 手动” 运行。</p><p>　　作用：在多用户使用的计算机上，某些用户因为是非管理员，导致某些程序无法执行。为了让没有管理员权限的已登录用户可以使用这个程序，WindowsXP设计了这个功能来分配临时的管理员权限。 </p><p>　　服务器(Server)</p><p>　　如果你不想与其它联网的计算机共享文件或打印机的话，可关闭该服务。</p><p>　　作用：透过网络为这台计算机提供档案、打印、及命名管道的共享。</p><p>　　TCP/IP NetBIOS协助程序(TCP/IP NetBIOS Helper Service)</p><p>　　如果你的计算机没有联网，或者并非与运行Windows 9x的计算机系统同处于一个网络内，就不需要该服务。</p><p>　　作用：启用 [NetBIOS over TCP/IP (NetBT)] 服务及NetBIOS名称解析的支持。</p><p>　　布景主题(Themes)</p><p>　　如果你喜欢使用传统的Windows桌面背景，关闭这项服务可节约4~12MB的资源空间。</p><p>　　作用：为用户提供使用主题管理的经验。</p><p>　　WebClient</p><p>　　基于安全性的理由，你可以尝试关闭— — 如果导致微软的其它产品或服务无法启动，还可以重新启动它。</p><p>　　作用：使基于Windows的程序能创建、访问和修改基于Internet的文件。</p><p>　　无线网络零配置管理(Wireless Zero Configuration)</p><p>　　如果你的电脑没有接任何无线网络适配卡装置，或是并非处于无线网络之中的话，就没有必要使用该服务。</p><p>　　作用：为 802.11 适配卡提供自动设定，自动配置无线网络装置。</p>]]>
				</description>
				<guid isPermaLink="false">
					5834861@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  18:10</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[玩转电脑 Windows XP操作系统下光驱使用技巧]]>
				</title>
				<link>http://hike.bokee.com/5834291.html</link>
				<description>
					<![CDATA[<p><p>光驱即光盘驱动器，相信大家平时对它的使用得不少。但是您知道吗，巧妙地运行Windows下的光驱能够为我们的工作带来不少便利。本文将告诉大家在Windows下光驱使用的几个实用小技巧，供大家参考。 </p><p>　　1、固定盘符 </p><p>　　一般情况下，当我们在系统中增加了存储设备后，光驱的盘符会发生变化，从而给我们带来一些不便。其实，只要我们打开“控制面板”\“系统”\“设备管理”\“CDROM”，并选中光驱后，打开“属性”\“设置”窗口，将“启始驱动器号”和“结束驱动器号”均选为你希望的盘符号后（如O：），重新启动系统后无论您怎要增加和删除存储设备，光驱的盘符号都不会变化。 <br />&nbsp;<br />&nbsp;<br />&nbsp;</p><p><br />　　2、虚拟光驱 </p><p>　　现在的光盘产品丰富多彩，同时它们的容量也在不断提升，但每次一玩游戏或是使用多媒体光盘，那不争气的光驱（即便是号称40倍速、50倍速）不仅会让你等半天，它那转动时发出的不堪重负的声音还会令你心痛不已！其实，这时候我们应该请虚拟光驱程序来帮忙，虚拟光驱程序可以将光盘中的内容写到硬盘上，并虚拟出一个光盘驱动器，使用起来高速、方便、而且不损坏光盘，如果您的某一张光盘需要反复使用，而且您的硬盘的“肚皮”又相当大的话，您可以考虑使用虚拟光驱。虚拟光驱程序有很多，如Virtual Drive2000 （ 下载地址为<a href="http://www.farstone.com/">http://www.farstone.com</a>。）、Virtural cd－rom （下载地址为<a href="http://www.spaceinter.com/">http://www.spaceinter.com</a>）、CD Copier Gamers' Edition（下载地址是<a href="http://www.imsisoft.com/">http://www.imsisoft.com</a>）、Paragon CD Emulator（下载地址<a href="http://www.paragon/">http://www.paragon</a>－gmbh.com）等等，它们使用起来各有千秋，适用的范围也有所不同，你可以根据你的爱好来选择其中的一个。如果你需要上述软件的汉化程序，你可以到<a href="http://mengboy.yeah.net/">http://mengboy.yeah.net</a>处下载。 </p><p>　　3、在“安全模式”下巧用光驱 </p><p>　　众所周知，使用Windows 时经常会出现蓝屏或死机等现象。这时，Windows便会重新启动进入“安全模式”，但是Windows在安全模式下无法使用光驱！其实，只要我们在礓盘的将硬盘中的根目录下新建一个Config.sys文件，文件内容为： </p><p>　　device=C:\Windows\Command\Ebd\oakcdrom.sys /d:cdrom </p><p>　　再新建一个C:\Autoexec.bat文件，其内容为： </p><p>　　C:\Windows\Command\mscdex.exe /d:cdrom </p><p>　　之后，一旦你的系统出现了故障，即使进入Windows的安全模式后也能够正常使用光驱。<br />4、刻录带图标的光盘 </p><p>　　随着刻录机和刻录光盘价格的下调，刻录机进入寻常百姓家已经不再是什么稀奇事了，我们完全可以通过刻录机制作出自己的CD了，但是在Windows 下制作出来的CD插入光驱后图标千篇一律，缺乏个性。其实，只要我们在光盘的根目录下生成一个名为autorun.inf的文件文件，并在其中加上一句： </p><p>　　Icon=cdrom.ico </p><p>　 并将一自己失败的cdrom.ico图标文件也拖入CD-R的根目录中一并刻录，以后在Windows 资源管理器中显示的就是cdrom.ico图标的样子。 <br />&nbsp;<br />&nbsp;<br />&nbsp;</p><p><br />　　5、自动识别UDF格式光盘 </p><p>　　笔者有一Philips 刻录机，用WinOncd 3.6 Power Editin刻录后的CD-RW发现在CD-ROM上无法读取但是刻录后的CD-R在CD-ROM上却可以正常读取。后从Adaptec公司的网址<a href="http://www.adaptec.com/">http://www.adaptec.com</a>上下载Adaptec UDF Reader软件并安装后即可在CDROM中正常读取了。究其原因，是由于CD-RW是以UDF（Univeral Disk Format）方式刻录的，而CD-R是以ISO9660标准或Joilet的格式刻录的，所以CD-R在CD-ROM上可以正常读取，而要想在CD-ROM上读取CD-RW，则必须安装Adaptec UDF Reader软件，并且CD-ROM要支持MultiRead（现在一般光驱都具有这种能力）。另外，凡是利用DirectCD软件制作成的CD-R或CD-RW在CDROM上读取时也必须有Adaptec UDF Reader软件的支持。 </p><p>　　6、让光驱也软件进盒 </p><p>　　不知道大家有没有注意过，在Windows资源管理器右击光驱图标时，在滑出的菜单中有一个“弹出”命令，利用它就可以将光驱盒打开而无需手工操作，既方便，又减少硬件损伤。但可惜的是，在Windows中无法利用菜单命令将光驱进行进盒操作。在《超级解霸》软件中有一个叫做系统伺服器的程序，它可以起到一个CDROM驱动器的软件开关作用，可以弥补这个缺点。具体的方法是：安装完《超级解霸》后，右击任务栏上的系统伺服器图标，在弹出的菜单中选择“弹开所有CD-ROM”命令，就可以将本机上的所有CD-ROM（包括刻录光驱CD-RW等设备）的光驱盒盖打开，供您进盘，如果您要关闭盒盖，只要再次选择“关闭所有CD-ROM”菜单即可。这样使用起来一来比较方便，二来减少了硬件的损坏，真是一举两得。另外，该系统伺服器还有一个选项“关机时弹出所有光盘”，当我们选中它时，每次关机时系统都会自动地将所有的CD-ROM的光驱盒盖弹出，供您将光盘取出，免去了一时忘记拿盘，再次打开机器电源之苦。 <br /></p><!--google广告开始--><p><script type="text/javascript"></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p><!--google广告结束--><iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-1553446339797986&dt=1162796393468&lmt=1162796393&format=468x60_as&output=html&url=http%3A%2F%2Fpublishblog.bokee.com%2Fcontrol%2Fblog%2FnewPost.b%3Fpost%3D1&color_bg=DEDEDE&color_text=000000&color_link=003366&color_url=063E3F&color_border=CCCCCC&ad_type=text_image&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_his=9&u_java=true" frameborder="0" width="468" scrolling="no" height="60" allowtransparency="true" /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834291@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:58</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[Windows XP操作系统崩溃后简单快速急救方法]]>
				</title>
				<link>http://hike.bokee.com/5834288.html</link>
				<description>
					<![CDATA[<p><p>下面，笔者介绍一下自己利用超级急救盘结合Ghost软件进行系统维护的方法。</p><p>　　注：由于Windows 98系统和Windows98+WindowsXP双系统都可以进入纯DOS模式，不在此讨论范围，这里仅就安装Windows XP桌面系统而言。</p><p>　　设计思路</p><p>　　在系统盘C盘建立Windows98的DOS模式（仅包括IO.SYS，MSDOS.SYS，COMMAND.COM三个文件），然后安装WindowsXP系统，这样就产生Windows98和Windows XP的双系统启动项，不过Windows98并没有安装，只是简单的DOS模式。 <br />&nbsp;<br />&nbsp;<br />&nbsp;<br />平时工作进入WindowsXP系统，遇到系统故障时，则进入Windows98的DOS模式，用Ghost软件恢复系统。一旦出现严重的问题，连系统都进不了时，再用超级急救盘来引导系统，进行相关的修复和维护操作。</p><p>　　制作超级急救盘</p><p>　　下载超级急救盘文件SOS_Disk.zip，然后释放出主文件SOS4.exe并执行，将软盘制作成急救软盘。为防止有的电脑无软驱或软盘不保险，可以将超级急救盘制作成急救光盘。</p><p>　　系统安装</p><p>　　1. 为加快Windows XP的安装过程，可预先将Windows XP的安装文件拷贝到硬盘上，如D盘。</p><p>　　2.用超级急救盘启动电脑，按E键退出它的菜单模式，在DOS提示符状态下输入FormatC:/s命令，对系统盘C盘进行格式化并传递DOS98系统。完了以后再把其中的一个文件名为Deltree.com的文件复制到C盘根目录下，并复制Ghost软件的相关程序到Ghost目录中，以备后用。</p><p>　　3. 运行WindowsXP安装盘的I386文件夹下的Winnt.exe，进行WindowsXP系统的DOS方式安装。安装完成后，不要急于安装打印机、扫描仪、视频头、优盘等设备的驱动程序，以使将要制作的备份文件尽量小些。</p><p>　　系统备份</p><p>　　Windows XP安装完成后，关机并重启电脑，选择第二菜单项“Microsoft Windows98”，进入Windows98的纯DOS模式，用Deltree/y命令格式直接删除C盘根目录下的Pagefile.sys和Hiberfil.sys这两个文件（这两个文件为隐藏属性，不能用普通的Del命令删除，所以复制了Deltree.com这个DOS文件来用。这样做的目的是为了使下面制作备份时文件尽量地小，以利于将来能刻录到光盘上进行保存），然后再用Del命令删除Deltree.com这几个文件。最后运行Ghost软件，将系统分区制作成GHO镜像文件，比如Dos98_winxp.gho，保存到其他分区。为防止整个硬盘出错，我们可以将Dos98_winxp.gho这个文件刻录到光盘上保存。</p><p>　　系统急救</p><p>　　通过以上几步，已经为以后的系统急救工作做好了准备。因为备份的是整个系统分区，所以一旦有什么不测，只要用Ghost软件克隆一下系统就一切完好如初，得到了一劳永逸的效果。如果真的出现硬盘分区表错误或其他灾难性的严重问题时，再拿出急救软盘或光盘来引导系统，进行相应的急救操作。</p>]]>
				</description>
				<guid isPermaLink="false">
					5834288@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:56</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[Windows XP系统巧妙关闭USB错误提示的方法]]>
				</title>
				<link>http://hike.bokee.com/5834285.html</link>
				<description>
					<![CDATA[<p><p>笔者办公室最近新添了一台电脑，主板上的USB接口是2.0版本的，可惜平时使用的20GB移动硬盘却只是USB 1.1接口，因此每次使用移动硬盘时，系统托盘处都会弹出一个窗口提示说是“高速USB设备接入低速USB集线器，寻求解决方案，请点击这里”，虽然并不影响移动硬盘的正常使用，但看起来十分讨厌。</p><p>　　向专业人员请教解决办法，说是或者改用2.0接口的移动硬盘，或者插一块USB 2.0转接卡，由于这两种方法需要付出一定的代价，因此笔者根本不予考虑。忽然，笔者想到是否可以在设备管理器中动一些脑筋，于是打开USB设备的属性窗口，切换到“高级”选项页，将“不要通知我USB错误”的选项打开，然后点击“确定”按钮即可。<br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834285@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:55</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[Windows XP操作系统下磁盘格式转换高招]]>
				</title>
				<link>http://hike.bokee.com/5834278.html</link>
				<description>
					<![CDATA[<p><p>不久前，一个朋友的电脑出了些问题，说是安装的Win XP在使用过程中系统很不稳定，经常死机，动不动就蓝屏。经过笔者判断，问题可能出现在磁盘格式上。打开朋友电脑C盘的属性一看，磁盘格式为FAT16(稳定才怪呢)。</p><p>　　于是，笔者就向朋友解释了NTFS格式的好处。可是，重要的得把磁盘格式转换过来呢，这里就出现麻烦了。属性里的格式化肯定是不行了，C盘是系统盘，里面的东西可动不得;格式化重装又未免有点小题大做了;于是就用大名鼎鼎的PQMagic。 <br />&nbsp;<br />&nbsp;<br />&nbsp;<br />重启进入PQMagic后却发现“FAT-FAT32、FAT-NTFS”皆为不可选!</p><p>　　碰见这样的情况怎么解决呢?其实从Windows 2000开始，系统中便自带了“用控制台命令CONVERT”来帮你进行磁盘属性的转换!只需要在运行里输入“CMD”进入控制台，输入convert/?，回车后就会看到对此命令的简单介绍，稍有经验的用户都能轻松掌握。</p><p>　　遇见笔者朋友的情况，我们可以输入convert c:/fs:ntfs回车，系统会提示在当前状态下无法完成，这时要重新启动。输入“Y”，然后Win XP会自动关机，在重启两次以后，再看C盘的属性，已经是NTFS了!整个过程还不到4分钟(转换过程需要的时间与硬盘大小和计算机配置有关)!<br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834278@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:54</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[极速狂飙！ Windows XP系统快速关机新方法 ]]>
				</title>
				<link>http://hike.bokee.com/5834273.html</link>
				<description>
					<![CDATA[<p><p>关于Windows XP操作系统快速关机的方法有很多，有通过程序来实现的，也有通过软件来实现的，还有做个文件来实现关机，下面我们讲的是一些新的内容，大家可以看看，对你是有很大帮助的。</p><p>　　组合键关机法一</p><p>　　WINDOWS XP 中隐藏的一个快速关机方法，要按键在1秒之内才能出来，具体方法:</p><p>　　先用鼠标点开始，然后快速的按U键两次，整个过程一定要在1秒之内。中间不要停顿，要不就超时出不来了。 <br />&nbsp;<br />&nbsp;<br />&nbsp;</p><p>　　嘿嘿出来了吧，体验一下微软的厉害吧。</p><p>　　组合键关机法二</p><p>　　Windows XP 中还有另一个通过组合键快速关机方法，具体方法:</p><p>　　按一下键盘上的Windows键(也可用鼠标点击开始按钮)，然后快速的按U键和R键，整个过程一定要在1秒之内。中间不要停顿，看看Windows XP的关机界面是不是出来了。</p><p>　　注:要使用这个功能，必须到“控制面板”的“用户帐户”里面更改“用户登陆或注销方式”，把“使用欢迎屏幕”去掉才可以实现，不然使用这个功能是自动重启。</p><p>　　Windows XP实现1秒关机</p><p>　　体积庞大的Windows XP操作系统关机起来很慢，大约需要30～50秒，但是按我们下面提供的方法更改注册表选项，你的Windows XP系统关机速度就会非常的快了。找到HKEY-CURRENT-USER\Control Panel\Desktop键，将WaitToKillAppTimeout改为:1000，即关闭程序时仅等待1秒。另:程序出错和系统自动关闭停止响应的程序如何实现快速关闭。1、将HungAppTimeout　值改为:200，表示程序出错时等待0.5秒。2、将AutoEndTasks 值设为:1，让系统自动关闭停止响应的程序。</p><p>　　用“任务管理器”关机</p><p>　　在Windows XP中按“Ctrl+Alt+Del”调出“任务管理器”窗口，激活菜单“关机”的同时按住“Ctrl”键，然后选择“关机”或“重新启动”菜单项。这时你会发现，Windows XP的关机速度就会非常的迅速。<br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834273@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:53</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[Google GMail使用技巧]]>
				</title>
				<link>http://hike.bokee.com/5834271.html</link>
				<description>
					<![CDATA[<p><p>Google拥有很多种服务，但最令人激动的无疑是GMail服务，虽然GMail已经推出了多年，而且Google还在不停地推出各种各样的服务，但是已经很少有像Gmail这样震撼人心的产品了。</p><p>　　GMail是一个伟大的服务，使用完全免费，容量巨大，有优秀的过滤功能和反垃圾邮件功能，支持加密访问，支持POP接收和邮件转发，还有许多其他强大的功能，我这里就介绍一下我在使用GMail系统的时候总结的一些常用的使用经验和技巧。</p><p>　　安全的连接Gmail</p><p>　　通过SSL加密方式 <a href="https://gmail.google.com">https://gmail.google.com</a> 来登陆Gmail，可以防止黑客通过Sniffer等工具窃听用户名和密码。</p><p>　　通过手机访问GMail</p><p>　　GMail一个非常优秀的特点就是支持绝大多数手机登录，这使得人们可以随时随地访问自己的Gmail信箱，访问的时候只需在手机的网络浏览器中输入 <a href="http://m.gmail.com">http://m.gmail.com</a> 即可。Gmail手机版提供了很多很“ 酷” 的功能：界面能够针对手机自动进行优化，支持访问照片、Word文档和 .pdf文件等附件，如果Gmail联系人录入了电话号码，还可以通过电话答复邮件。Google对于访问GMail的手机不收取任何费用。</p><p>　　无穷多的GMail邮件地址</p><p>　　一个GMail的邮件地址，其实相当于无穷多的GMail邮件地址，通过邮件地址中的＋号可以衍生各种邮件地址，比如对于发送到<a href="mailto:username+list1@gmail.com">username+list1@gmail.com</a>的邮件，系统会自动将邮件转到<a href="mailto:username@gmail.com">username@gmail.com</a>，因此只要在GMail用户名后面加上一个“ +” 号，就可以衍生出无穷多的邮件地址，这些地址都是你自己的。</p><p>　　使用这种邮件地址的好处是非常便于过滤，只需要针对不同的邮件地址就可以方便地分拣出不同用处的邮件。比如可以设置一个label1标签，通过过滤器的设置，所有发送到<a href="mailto:username+list1@gmail.com">username+list1@gmail.com</a>的邮件，会自动贴上label1标签。</p><p>　　发送邮件不包含IP地址</p><p>　　通过Outlook客户端发送GMail邮件，发送的邮件内会记录发信人的IP地址，但是如果登录WEB上的GMail网站，然后在上面发送邮件，则发送的邮件中就不包含自己的IP地址。因此，如果你想隐藏IP发送邮件，就登录GMail吧。</p><p>　　通过RSS阅读器查看Gmail新邮件</p><p>　　在RSS阅读器中，选择Feed地址为<a href="https://mail.google.com/mail/feed/atom">https://mail.google.com/mail/feed/atom</a>，然后提交您的Gmail地址和密码，即可在RSS中查看新的GMail邮件。</p>]]>
				</description>
				<guid isPermaLink="false">
					5834271@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:53</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[如何实现自动登录Windows XP系统？]]>
				</title>
				<link>http://hike.bokee.com/5834266.html</link>
				<description>
					<![CDATA[<p><p>每次进入Windows XP桌面前，总会出现一个用户登录的画面，要求输入用户名和密码。对于多人使用的电脑确实起到了一定的安全作用，但如果电脑只是个人专用，每次都必须输入密码，实在是令人讨厌。</p><p>　　要取消这个登录步骤，可以通过修改注册表文件中的Winlogon项目来实现。可以按照以下步骤操作：运行注册表编辑器，依次展开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft</p><p>　　\Windows\CurrentVersion\Winlogon 分支，然后在右侧窗口双击“DefaultUserName”，接着输入你的登录用户名。 <br />&nbsp;<br />&nbsp;<br />&nbsp;<br />如果没有预设的用户名称，可以在注册表编辑器的菜单栏依次选择“编辑→新建→字符串值(s)→DefaultUserName”来添加这个项目，注意要区分大小写字母。</p><p>　　同样在该分支下，在注册表编辑器的右侧窗口中双击“DefaultPassword”，然后在空白栏内输入你的密码。假如未发现“DefaultPassword”一项，可按上面的步骤来新建该字符串值。接下来在右侧窗口中双击“AutoAdminLogon”，将数值设置为“1”。假如未发现“AutoAdminLogon”，可以按照上面的步骤来新建。</p><p>　　关闭注册表编辑器并重新启动计算机，以后你就会发现那个令人讨厌的登录对话框不见了。<br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834266@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:52</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[Windows XP操作系统镜像制作技巧]]>
				</title>
				<link>http://hike.bokee.com/5834255.html</link>
				<description>
					<![CDATA[<p><p>一、系统盘的精简</p><p>　　平时我们安装的系统中有很多的组件和服务是不需要的，平时根本就用不到，所以我们可以对XP(2000)的安装盘进行精简，去掉哪些对我们没有用的内容。这里我推荐使用“nlite”，这个软件可以对各种2000、XP进行定制安装，最新版本是1.0 b6。安装前需要安装MicroSoft的。NET Framework，软件安装后可以选择简体中文，它提供的功能比较多，有“Service Pack整合”、“修补程序包整合”、“驱动整合”、“组件移除”、“无人值守安装”、“补丁”、“优化”、“制作可引导镜像”8个功能，定制自己的安装盘时，可以选择部分或全部功能;这里我主要应用它的“组件移除”和“制作可引导镜像”功能。 <br />&nbsp;<br />&nbsp;<br />&nbsp;<br />不过根据我在虚拟机上的试验，这个软件的“修补程序包整合”功能无效，想要在安装包里集成最新补丁的话还要其他的方法。具体移除的组件见附件的配置文件。</p><p>　　我们还可以把这个盘制作成可以无人值守的全自动安装盘，考虑到nlite提供的“无人值守安装”功能不是很齐全，我们可以使用微软提供的“Setup Manager(setupmgr.exe)”(XP的安装盘里就包含了这个工具)工具来制作一个自动应答文件-winnt.sif，详细的制作方法网上都有，这里就不再写了。</p><p>　　我原来制作的是一张全自动的安装盘，只需要放入光驱，就能全自动安装系统，完全实现无人值守化安装。但是后来在实际应用过程中，发现一些问题，首先是使用这张盘首先要把系统分区格式化，安装系统时还要使用另外钠舳唐舳酱緿OS下，完成对系统盘的格式化工作;而对于NTFS格式的系统分区来说，因为纯DOS无法辨认，无法格式化，其次是无法选择系统安装的分区，也不能删除、转换、格式化分区，这样就失去了安装盘的特色功能，让人感到不是太方便。于是便修改了“winnt.sif”文件里的几个参数，这样在安装过程中可以选择安装系统的分区，实现删除、转换、格式化分区的操作。</p><p>　　二、系统的镜像制作</p><p>　　全新安装好一个系统后要对这个系统进行相应的设置，这样制作的ghost文件体积可以达到最小，恢复后的系统也可以达到最佳的性能。我一般使用的步骤是一下几点:</p><p>　　1、打好系统所有的补丁，可以从网上下载整个补丁包，也可以自己下载，然后制作一个批处理文件，一起安装。</p><p>　　2、安装WMP10、。NET Framework等组件。</p><p>　　3、安装好系统的各种驱动。</p><p>　　4、设置主页空白。</p><p>　　5、禁止使用系统还原(可以在系统盘的精简过程中去掉“系统还原”这个功能)。</p><p>　　6、删除多余的输入法</p><p>　　7、转移“我的文档”目录，这样每次ghost前“我的文档”里文件不用备份，恢复后可以直接使用。</p><p>　　8、删除备份的补丁信息。打好系统的补丁后，系统就在C:windows下面备份了补丁的信息，这样以后才可以卸载相应的补丁，不过补丁一般是不用卸载的，我们可以删除这些信息，每个补丁信息都有相应的一个以补丁名字命名的文件夹，具有隐藏属性，就在C:windows目录下，删除后，C盘又多了100多M。</p><p>　　9、最后整理系统盘。</p><p>　　系统经过这样设置后，基本达到最佳性能，可以制作ghost文件了。</p><p>　　准备一个单独的分区，FAT32格式(需要启动到纯DOS下访问这个分区，其他分区格式不限)，放入ghost.exe文件，用启动盘启动就可以使用ghost备份系统了。</p><p>　　安装完系统后，我一般做两次镜像，第一次装完系统就ghost(当然首先要整理一下硬盘)，这样保持一个原汁原味的系统;然后按照上面几点进行设置后，安装好office，再做一次镜像。这样做两次镜像的好处是:当第二个镜像里安装的驱动旧了、新的系统补丁多了的时候，恢复系统后再装新驱动和补丁比较麻烦，这样我们就可以恢复到第一个镜像，安装新的驱动、补丁、同样进行优化设置后，再制作新的镜像来代替原来的第二个镜像，不用重装系统，方便了很多。我一般不考虑在ghost前安装常用软件(office除外，因为基本上不用更新)，主要是这些软件更新很快，如果大家平时需要使用大型软件，也可以在做第二个镜像文件前先安装好，这样就避免浪费时间和精力。</p><p>　　以上是我玩电脑5年以来的一些心得和所谓的经验，其中的不足之处或错误恳请大家批评指正。如果大家看了这篇文章，感觉对自己有所帮助的话，我将感到莫大的欣慰。</p>]]>
				</description>
				<guid isPermaLink="false">
					5834255@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:47</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[让Windows XP系统自动进行日常维护]]>
				</title>
				<link>http://hike.bokee.com/5834249.html</link>
				<description>
					<![CDATA[<p><p>Windows XP的日常维护是件既耗时又无聊的事情，如果Windows XP能够聪明一点，进行自动维护就好了。下面，就为大家介绍一种通过.inf文件让Windows XP进行自动维护的技巧，自动维护的具体内容可以任意设定，不过需要命令来实现。比如用Xcopy进行文件备份、Defrag进行磁盘碎片整理、Del删除垃圾文件等等。为了讲清楚原理，下面我们以Defrag为例，你可以根据自己的需要进行修改。 <br />&nbsp;<br />&nbsp;<br />&nbsp;</p><p>　　实现步骤</p><p>　　1. 建立Main.bat文件</p><p>　　以管理员身份登录Windows XP，在系统盘的根目录下新建一个名为Main.bat的文件(文件名可以随便取，下同)并输入如下内容:</p><p>　　cd\<br />　　C:<br />　　cd Windows\system32<br />　　defrag C: /f<br />　　chkntfs C:<br />　　2. 建立Main.inf文件</p><p>　　新建一个文件名为Main.inf的文件并输入:</p><p>　　[version]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Signature= &quot;$CHICAGO$&quot;<br />　　AdvancedINF= 2.5,&quot;advpack.dll&quot;<br />　　[DefaultInstall]<br />　　RunPreSetupCommands=Tst.PreSetup<br />　　RunPostSetupCommands=Tst.PostSetup<br />　　[Tst.PreSetup]<br />　　C:\Main.bat<br />　　[Tst.PostSetup]<br />　　C:\WINDOWS\SYSTEM32\TSSHUTDN.EXE 0 /DELAY:0 /POWERDOWN</p><p>　　在这个文件中，Signature必须设置为”$CHICAGO$”，否则文件将无法起作用。</p><p>　　3. 建立Begin.bat文件</p><p>　　在C盘根目录下建立批处理文件Begin.bat，向这个文件中输入:</p><p>　　C:\WINDOWS\System32\rundll32.exe advpack.dll,LaunchINFSectionEx</p><p>　　C:\Main.inf,DefaultInstall,,32</p><p>　　这个命令的作用是让Windows XP启动一个硬件安装过程，从而执行.inf文件中的指令。Rundll32.exe在Windows中被用来调用DLL文件(动态链接库)中函数提供的功能。比如这里的rundll32.exe就调用了advpack.dll中的LaunchINFSectionEx函数，这个函数的作用就是启动一个.inf安装过程。不过Main.inf的内容已经和硬件安装无关，而是被我们偷梁换柱改成了系统自动维护的命令。</p><p>4. 计划任务 </p><p>　　计划任务的作用是定期执行Begin.bat文件，实现步骤如下:</p><p>　　(1)打开Windows XP的开始菜单进入“程序→附件→系统工具→计划任务”，双击“添加计划任务”，单击“浏览”，找到C盘根目录下面的Begin.bat文件，然后单击“下一步”按钮;</p><p>　　(2)设置任务执行周期为“每周”，然后单击“下一步”按钮;</p><p>　　(3)设置执行计划任务的密码，也就是计算机的管理员密码，然后单击“下一步”按钮;</p><p>　　(4)设置执行任务的具体日期和时间。 <br />&nbsp;<br />&nbsp;<br />&nbsp;</p><p>　　在以上例子中，我们让这个计划任务每周日的23:30执行一次文件C:\Begin.bat，进行自动维护。</p><p>　　实现原理</p><p>　　.inf文件通常用于硬件安装，其实是一个文本文件。当用户在文件上单击鼠标右键选择“安装”的时候，Windows将会根据这个文件的内容执行一系列操作，上面介绍的自动维护方法就是借助.inf文件的这个特点实现的。</p><p>　　我们建立的计划任务启动时，它会调用Begin.bat。Begin.bat将使用Main.inf作为配置文件启动一个安装过程，按照Main.inf中的内容执行一系列操作。</p><p>　　Main.inf启动时会首先执行[Tst.PreSetup]段中的语句，也就是“C:\Main.bat”，Main.bat被调用时，Windows将对C:进行磁盘碎片整理工作。Main.bat的内容越丰富，自动维护的功能就越强大。</p><p>　　Main.bat中的命令都执行完毕后，[Trs.PostSetup]中的语句又将被执行，也就是:</p><p>　　C:\WINDOWS\SYSTEM32\TSSHUTDN.EXE 0 /DELAY:0 /POWERDOWN</p><p>　　这个语句的作用是关闭计算机，其实是“关闭Windows XP+关闭电源”。</p><p>　　最后要注意的一点，这个方法只能在Windows XP Professionl中实现，Windows XP Home无法使用。</p>]]>
				</description>
				<guid isPermaLink="false">
					5834249@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:45</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[快速恢复Windows XP系统管理员密码三大技巧]]>
				</title>
				<link>http://hike.bokee.com/5834245.html</link>
				<description>
					<![CDATA[<p><p>技巧1:删除SAM文件来恢复密码</p><p>　　大家知道，Windows XP的密码存放在系统所在的WindowsSystem32Config下的SAM文件中，SAM文件即账号密码数据库文件。当我们登录系统的时候，系统会与Config中的SAM自动校对，当发现密码和用户名与SAM文件中的加密数据符合时，你才能顺利登录;如果错误则无法登录。既然如此，我们则可以通过删除SAM文件来恢复密码。</p><p>　　如果你安装了两个操作系统，则可以使用另外一个能访问NTFS的操作系统来启动电脑。 <br />&nbsp;<br />&nbsp;<br />&nbsp;<br />如果没有安装两个操作系统，则可以使用其他工具来访问NTFS，然后删除C:Windowssystem32config目录下的SAM文件(如图)，重新启动操作系统，这时，管理员Administrator账号就没有密码了。当然，取下硬盘换到其他机器上来删除SAM文件也是一个好办法。</p><p>　　提示:Windows NT/2000/XP中对用户账户的安全管理使用了安全账号管理器(Security AccountManager，SAM)的机制，安全账号管理器对账号的管理是通过安全标识进行的，安全标识在账号创建时就同时创建，一旦账号被删除，安全标识也同时被删除。安全标识是惟一的，即使是相同的用户名，在每次创建时获得的安全标识都是完全不同的。因此，一旦某个账号被删除，它的安全标识就不再存在了，即使用相同的用户名重建账号，也会被赋予不同的安全标识，不会保留原来的权限。</p><p>　　安全账号管理器的具体表现就是%SystemRoot%system32configsam文件。SAM文件是Windows NT/2000/XP的用户账户数据库，所有用户的登录名及口令等相关信息部会保存在这个文件中。</p><p>　　技巧2:使用工具软件来恢复密码</p><p>　　使用Off1ine NT Password&amp;&amp;Registry Editor。用该工具软件制作一张Linux启动盘，这个启动盘可以访问NTFS文件系统，因此可以很好地支持Windows 2000/XP。使用该软盘中的一个运行在Linux的工具Ntpasswd就可以解决问题，并且可以读取注册表并重写账号密码。使用的方法很简单，只需根据其启动后的提示一步一步做就可以了。在此，建议你使用快速模式，这样会列出用户供你选择修改哪个用户的密码。默认选择Admin组的用户，自动找到把Administrator的名字换掉的用户，十分方便。</p><p>　　技巧3:使用NTFS DOS来恢复密码</p><p>　　使用NTFS DOS这个可以从DOS下写入NTFS分区的工具，用该工具软件制作一个DOS启动盘，然后到C:WindowsSystem32下将屏幕保护程序logon.scr改名，接着拷贝command.com到C:Windowssystem32下，并将该文件改名为logon.scr。这样启动机器后等待5分钟，本应该出现的屏幕保护现在变成了命令行模式，而且具有Administrator权限，通过它就可以修改密码或者添加新的管理员账号了。改完后不要忘记将屏幕保护程序的名字改回去。　</p>]]>
				</description>
				<guid isPermaLink="false">
					5834245@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:44</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[能上QQ,但是无法打开网页的解决方法.]]>
				</title>
				<link>http://hike.bokee.com/5834239.html</link>
				<description>
					<![CDATA[<p><p>如果是QQ能上，无法上网，请在软件界面按CTRL+S即可</p><p>&nbsp;&nbsp;&nbsp; 一、网络设置的问题 </p><p>　　这种原因比较多出现在需要手动指定IP、网关、DNS服务器联网方式下，及使用代理服务器上网的。仔细检查计算机的网络设置。 </p><p>　　二、DNS服务器的问题 </p><p>　　当IE无法浏览网页时，可先尝试用IP地址来访问，如果可以访问，那么应该是DNS的问题，造成DNS的问题可能是连网时获取DNS出错或DNS服务器本身问题，这时你可以手动指定DNS服务（地址可以是你当地ISP提供的DNS服务器地址，也可以用其它地方可正常使用DNS服务器地址。）在网络的属性里进行，（控制面板—网络和拔号连接—本地连接—右键属性—TCP/IP协议—属性—使用下面的DNS服务器地址）。不同的ISP有不同的DNS地址。有时候则是路由器或网卡的问题，无法与ISP的DNS服务连接，这种情况的话，可把路由器关一会再开，或者重新设置路由器。 </p><p>　　还有一种可能，是本地DNS缓存出现了问题。为了提高网站访问速度，系统会自动将已经访问过并获取IP地址的网站存入本地的DNS缓存里，一旦再对这个网站进行访问，则不再通过DNS服务器而直接从本地DNS缓存取出该网站的IP地址进行访问。所以，如果本地DNS缓存出现了问题，会导致网站无法访问。可以在“运行”中执行ipconfig /flushdns来重建本地DNS缓存。 </p><p>　　三、IE浏览器本身的问题 </p><p>　　当IE浏览器本身出现故障时，自然会影响到浏览了；或者IE被恶意修改破坏也会导致无法浏览网页。这时可以尝试用“黄山IE修复专家”来修复（建议到安全模式下修复），或者重新IE（如重装IE遇到无法重新的问题，可参考：附一解决无法重装IE） </p><p>　　四、网络防火墙的问题 </p><p>　　如果网络防火墙设置不当，如安全等级过高、不小心把IE放进了阻止访问列表、错误的防火墙策略等，可尝试检查策略、降低防火墙安全等级或直接关掉试试是否恢复正常。 </p><p>　　五、网络协议和网卡驱动的问题 </p><p>　　IE无法浏览，有可能是网络协议（特别是TCP/IP协议）或网卡驱动损坏导致，可尝试重新网卡驱动和网络协议。 </p><p>　　六、HOSTS文件的问题 </p><p>　　HOSTS文件被修改，也会导致浏览的不正常，解决方法当然是清空HOSTS文件里的内容。 </p><p>　　七、系统文件的问题 </p><p>　　当与IE有关的系统文件被更换或损坏时，会影响到IE正常的使用，这时可使用SFC命令修复一下，WIN98系统可在“运行”中执行SFC，然后执行扫描；WIN2000/XP/2003则在“运行”中执行sfc /scannow尝试修复。 </p><p>　　其中当只有IE无法浏览网页，而QQ可以上时，则往往由于winsock.dll、wsock32.dll或wsock.vxd（VXD只在WIN9X系统下存在）等文件损坏或丢失造成，Winsock是构成TCP/IP协议的重要组成部分，一般要重装TCP/IP协议。但xp开始集成TCP/IP协议，所以不能像98那样简单卸载后重装，可以使用 netsh 命令重置 TCP/IP协议，使其恢复到初次安装操作系统时的状态。具体操作如下： </p><p>　　点击“开始 运行”，在运行对话框中输入“CMD”命令，弹出命令提示符窗口，接着输入“netsh int ip reset c:\resetlog.txt”命令后会回车即可，其中“resetlog.txt”文件是用来记录命令执行结果的日志文件，该参数选项必须指定，这里指定的日志文件的完整路径是“c:\resetlog.txt”。执行此命令后的结果与删除并重新安装 TCP/IP 协议的效果相同。 </p><p>　　小提示：netsh命令是一个基于命令行的脚本编写工具，你可以使用此命令配置和监视Windows 系统，此外它还提供了交互式网络外壳程序接口，netsh命令的使用格式请参看帮助文件（在令提示符窗口中输入“netsh/?”即可）。 </p><p>　　第二个解决方法是修复以上文件，WIN9X使用SFC重新提取以上文件，WIN2000/XP/2003使用sfc /scannow命令修复文件,当用sfc /scannow无法修复时，可试试网上发布的专门针对这个问题的修复工具WinSockFix，可以在网上搜索下载。 </p><p>　　八、杀毒软件的实时监控问题 </p><p>　　这倒不是经常见，但有时的确跟实时监控有关，因为现在杀毒软件的实时监控都添加了对网页内容的监控。举一个实例：KV2005就会在个别的机子上会导致IE无法浏览网页（不少朋友遇到过），其具体表现是只要打开网页监控，一开机上网大约20来分钟后，IE就会无法浏览网页了，这时如果把KV2005的网页监控关掉，就一切恢复正常；经过彻底地重装KV2005也无法解决。虽然并不是安装KV2005的每台机子都会出现这种问题，毕竟每台机子的系统有差异，安装的程序也不一样。但如果出现IE无法浏览网页时，也要注意检查一下杀毒软件。 </p><p>　　九、Application Management服务的问题 </p><p>　　出现只能上QQ不能开网页的情况，重新启动后就好了。不过就算重新启动，开7到8个网页后又不能开网页了，只能上QQ。有时电信往往会让你禁用Application Management服务，就能解决了。具体原因不明。 </p><p>　　十、感染了病毒所致 </p><p>　　这种情况往往表现在打开IE时，在IE界面的左下框里提示：正在打开网页，但老半天没响应。在任务管理器里查看进程，（进入方法，把鼠标放在任务栏上，按右键—任务管理器—进程）看看CPU的占用率如何，如果是100%，可以肯定，是感染了病毒，这时你想运行其他程序简直就是受罪。这就要查查是哪个进程贪婪地占用了CPU资源．找到后，最好把名称记录下来，然后点击结束，如果不能结束，则要启动到安全模式下把该东东删除，还要进入注册表里，（方法：开始—运行，输入regedit）在注册表对话框里，点编辑—查找，输入那个程序名，找到后，点鼠标右键删除，然后再进行几次的搜索，往往能彻底删除干净。</p><p>&nbsp;&nbsp;&nbsp; 十一、其他问题</p><p>&nbsp;&nbsp;&nbsp; 关闭上网助手、关闭杀毒软件防火墙、调整IE安全级别为默认要是还不行,请重新创建一个用户帐号登录拨看看，如不行重新建立一个拨号连接看看</p><p>相关文章<br />能上QQ但不能上网问题精解<br /><a href="http://hike.bokee.com/5603115.html">http://hike.bokee.com/5603115.html</a></p>]]>
				</description>
				<guid isPermaLink="false">
					5834239@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:43</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[集线器(HUB)，猫，路由器(Router)和交换机(Switch)有什么区别？]]>
				</title>
				<link>http://hike.bokee.com/5834236.html</link>
				<description>
					<![CDATA[<p><p>交换机和hub </p><p>Switch和Hub是有区别的，比如一个100M的Switch，对每一个连接在Switch的计算机都是100M的速度，而Hub是瓜分100M的资源。而且Hub是通过广播来通信，很占网络资源。 <br />简单说hub没有路由算法，他是简单的碰撞通信，而交换机不一样，她有自己的地址表。 </p><p>打个比方一个8口hub，当端口1上的机器要给端口8上的机器发数据，那这个数据是这样跑的：首先她在端口1上侦听hub上有没有数据在传输，如果没有，端口1就跳出来向hub上喊：“我有数据包要给端口8，请端口8听到后回话”这个数据被以广播的方式发送到hub上的其余7个口上，每端口都会接到这样的数据包，然后端口2－－－端口7会发一则消息给断口1：“我不是端口8，请你快tmd释放带宽资源”与此同时端口8会发消息给断口1：“我是端口8，你在找我吗？”端口1收到上述消息后，会和端口8进行确认，然后他们建立传输链接，完成数据转发。等如果端口1在发送寻找断口8的消息后，没有得到相应，那她还会接着发这个消息，直到收到端口8的回答。等端口1和端口8完整数据转发后，假设他们还要进行通讯，那么hub上还会重复以上的过程。由此可见hub的通信方式点点碰撞，一个数据，需要送达所有的端口，这不但增加了数据转发的时间，更要命的是hub往往会给网络带来可怕的广播风暴。而相同的工作再交换机就不用这么麻烦，假设端口1和端口8从没有通信过，那么开始的时候，他们的工作和hub一样，端口1要在交换机上找端口8，一旦端口8返回确认信息，那再端口1上就会生成1个和端口8的地址对应表，这个表里面有所有和端口1通过信的端口，一旦有了这地址对应表，那在以后端口1要和端口8通讯，就不用这么麻烦，可以直接送达，而且其他的断口也不会知道他们直接正在转发数据，这样不当加快了数据转发时间，而且避免了可怕的广播风暴。 </p><p>路由器、交换机、hub </p><p>·交换机(Switch)是一种基于MAC（网卡的硬件地址）识别，能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址，并把其存放在内部地址表中，通过在数据帧的始发者和目标接收者之间建立临时的交换路径，使数据帧直接由源地址到达目的地址。现在的交换机分为：二层交换机，三层交换机或是更高层的交换机。三层交换机同样可以有路由的功能，而且比低端路由器的转发速率更快。它的主要特点是：一次路由，多次转发。 </p><p>·集线器(HUB)是计算机网络中连接多个计算机或其他设备的连接设备，是对网络进行集中管理的最小单元。英文Hub就是中心的意思，像树的主干一样，它是各分支的汇集点。HUB是一个共享设备，主要提供信号放大和中转的功能，它把一个端口接收的所有信号向所有端口分发出去。一些集线器在分发之前将弱信号加强后重新发出，一些集线器则排列信号的时序以提供所有端口间的同步数据通信。 </p><p>·路由器(Router)亦称选径器，是在网络层实现互连的设备。它比网桥更加复杂，也具有更大的灵活性。路由器有更强的异种网互连能力，连接对象包括局域网和广域网。过去路由器多用于广域网，近年来，由于路由器性能有了很大提高，价格下降到与网桥接近，因此在局域网互连中也越来越多地使用路由器。路由器是一种连接多个网络或网段的网络设备，它能将不同网络或网段之间的数据信息进行“翻译”，以使它们能够相互“读”懂对方的数据，从而构成一个更大的网络。路由器有两大典型功能，即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等，一般由特定的硬件来完成；控制功能一般用软件来实现，包括与相邻路由器之间的信息交换、系统配置、系统管理等。 </p><p><br />就路由器与交换机来说，主要区别体现在以下几个方面： </p><p>（1）工作层次不同 </p><p>最初的的交换机是工作在OSI／RM开放体系结构的数据链路层，也就是第二层，而路由器一开始就设计工作在OSI模型的网络层。由于交换机工作在OSI的第二层（数据链路层），所以它的工作原理比较简单，而路由器工作在OSI的第三层（网络层），可以得到更多的协议信息，路由器可以做出更加智能的转发决策。 </p><p>（2）数据转发所依据的对象不同 </p><p>交换机是利用物理地址或者说MAC地址来确定转发数据的目的地址。而路由器则是利用不同网络的ID号（即IP地址）来确定数据转发的地址。IP地址是在软件中实现的，描述的是设备所在的网络，有时这些第三层的地址也称为协议地址或者网络地址。MAC地址通常是硬件自带的，由网卡生产商来分配的，而且已经固化到了网卡中去，一般来说是不可更改的。而IP地址则通常由网络管理员或系统自动分配。 </p><p>（3）传统的交换机只能分割冲突域，不能分割广播域；而路由器可以分割广播域 </p><p>由交换机连接的网段仍属于同一个广播域，广播数据包会在交换机连接的所有网段上传播，在某些情况下会导致通信拥挤和安全漏洞。连接到路由器上的网段会被分配成不同的广播域，广播数据不会穿过路由器。虽然第三层以上交换机具有VLAN功能，也可以分割广播域，但是各子广播域之间是不能通信交流的，它们之间的交流仍然需要路由器。 </p><p>（4）路由器提供了防火墙的服务 </p><p>路由器仅仅转发特定地址的数据包，不传送不支持路由协议的数据包传送和未知目标网络数据包的传送，从而可以防止广播风暴。 </p><p>交换机一般用于LAN-WAN的连接，交换机归于网桥，是数据链路层的设备，有些交换机也可实现第三层的交换。路由器用于WAN-WAN之间的连接，可以解决异性网络之间转发分组，作用于网络层。他们只是从一条线路上接受输入分组，然后向另一条线路转发。这两条线路可能分属于不同的网络，并采用不同协议。相比较而言，路由器的功能较交换机要强大，但速度相对也慢，价格昂贵，第三层交换机既有交换机线速转发报文能力，又有路由器良好的控制功能，因此得以广泛应用。 </p><p>目前个人比较多宽带接入方式就是ADSL，因此笔者就ADSL的接入来简单的说明一下。现在购买的ADSL猫大多具有路由功能（很多的时候厂家在出厂时将路由功能屏蔽了，因为电信安装时大多是不启用路由功能的，启用DHCP。打开ADSL的路由功能），如果个人上网或少数几台通过ADSL本身就可以了，如果电脑比较多你只需要再购买一个或多个集线器或者交换机。考虑到如今集线器与交换机的价格相差十分小，不是特殊的原因，请购买一个交换机。不必去追求高价，因为如今产品同质化十分严重，我最便宜的交换机现在没有任何问题。给你一个参考报价，建议你购买一个8口的，以满足扩充需求，一般的价格100元左右。接上交换机，所有电脑再接到交换机上就行了。余下所要做的事情就只有把各个机器的网线插入交换机的接口，将猫的网线插入uplink接口。然后设置路由功能，DHCP等，就可以共享上网了。</p>]]>
				</description>
				<guid isPermaLink="false">
					5834236@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  14:41</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[scrfs.exe - scrfs ]]>
				</title>
				<link>http://hike.bokee.com/5834067.html</link>
				<description>
					<![CDATA[<p><strong>进程文件：</strong> scrfs or scrfs.exe <br /><b>进程名称：</b> Symbian Connect Component <br /><b>进程类别：</b>存在安全风险的进程<br /><b>英文描述：</b><br />scrfs.exe is a process associated with the Symbian Connect application. Symbian Connect is used to provide a simple way for PC developers to write Windows applications that use the services provided by Symbian phones. <br /><b>中文参考： </b><br />scrfs.exe是Symbian连接程序。用于电脑与手机的连接。 <br /><b>出品者：</b>Symbian <br /><b>属于：</b>Symbian Connect <br /><b>系统进程：</b>No <br /><b>后台程序：</b>Yes <br /><b>网络相关：</b>No <br /><b>常见错误：</b>N/A <br /><b>内存使用：</b>N/A <br /><b><font color="#cc0000">安全等级 (0-5): </font></b>0 <br /><b><a href="http://acfile.com/Faq/spyware.html"><font color="#cc0000">间谍软件：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/adware.html"><font color="#cc0000">广告软件：</font></a></b>No <br /><b><a href="http://acfile.com/Faq/bingdu.html"><font color="#cc0000">病毒：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/muma.html"><font color="#cc0000">木马：</font></a></b>No <br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834067@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  13:46</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[scrtkfg.exe - scrtkfg ]]>
				</title>
				<link>http://hike.bokee.com/5834060.html</link>
				<description>
					<![CDATA[<p><strong>进程文件：</strong> scrtkfg or scrtkfg.exe <br /><b>进程名称：</b> WIN32.RBOT Trojan Variant <br /><b>进程类别：</b>存在安全风险的进程<br /><b>英文描述：</b><br />scrtkfg.exeis a process which is registered as the WIN32.RBOT Trojan . This virus is distributed via the Internet through e-mail and comes in the form of an e-mail message, in the hopes that you open it’s hostile attachment. The worm has it’s own SMTP e <br /><b>中文参考： </b><br /><a href="http://www.acfile.com/"><font color="#ff0000">对不起，暂时没有中文参考！</font></a><br /><b>出品者：</b>na <br /><b>属于：</b>WIN32.RBOT Trojan Variant <br /><b>系统进程：</b>No <br /><b>后台程序：</b>Yes <br /><b>网络相关：</b>Yes <br /><b>常见错误：</b>N/A <br /><b>内存使用：</b>N/A <br /><b><font color="#cc0000">安全等级 (0-5): </font></b>4 <br /><b><a href="http://acfile.com/Faq/spyware.html"><font color="#cc0000">间谍软件：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/adware.html"><font color="#cc0000">广告软件：</font></a></b>No <br /><b><a href="http://acfile.com/Faq/bingdu.html"><font color="#cc0000">病毒：</font></a></b>Yes <br /><b><a href="http://www.acfile.com/Faq/muma.html"><font color="#cc0000">木马：</font></a></b>Yes <br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834060@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  13:44</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[scsiaccess.exe - scsiaccess ]]>
				</title>
				<link>http://hike.bokee.com/5834053.html</link>
				<description>
					<![CDATA[<p><strong>进程文件：</strong> scsiaccess or scsiaccess.exe <br /><b>进程名称：</b> Scsiaccess <br /><b>进程类别：</b>存在安全风险的进程<br /><b>英文描述：</b><br />scsiaccess.exe is an executable for Alcohol Softwares CD/DVD writing application, Alcohol 120%. It is an essential process which is needed in order for this application to work. <br /><b>中文参考： </b><br />scsiaccess.exe是Alcohol 120% CD/DVD刻录软件相关程序。 <br /><b>出品者：</b>Alcohol Soft <br /><b>属于：</b>Alcohol 120% <br /><b>系统进程：</b>No <br /><b>后台程序：</b>No <br /><b>网络相关：</b>No <br /><b>常见错误：</b>N/A <br /><b>内存使用：</b>N/A <br /><b><font color="#cc0000">安全等级 (0-5): </font></b>0 <br /><b><a href="http://acfile.com/Faq/spyware.html"><font color="#cc0000">间谍软件：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/adware.html"><font color="#cc0000">广告软件：</font></a></b>No <br /><b><a href="http://acfile.com/Faq/bingdu.html"><font color="#cc0000">病毒：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/muma.html"><font color="#cc0000">木马：</font></a></b>No <br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834053@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  13:43</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[scureapp.exe - scureapp ]]>
				</title>
				<link>http://hike.bokee.com/5834048.html</link>
				<description>
					<![CDATA[<p><strong>进程文件：</strong> scureapp or scureapp.exe <br /><b>进程名称：</b> OmniPass <br /><b>进程类别：</b>存在安全风险的进程<br /><b>英文描述：</b><br />scureapp.exe is a process associated with the OmniPass application from Softex Inc. It is a password management software. <br /><b>中文参考： </b><br /><a href="http://www.acfile.com/"><font color="#ff0000">对不起，暂时没有中文参考！</font></a><br /><b>出品者：</b>Softex Inc <br /><b>属于：</b>OmniPass <br /><b>系统进程：</b>No <br /><b>后台程序：</b>No <br /><b>网络相关：</b>No <br /><b>常见错误：</b>N/A <br /><b>内存使用：</b>N/A <br /><b><font color="#cc0000">安全等级 (0-5): </font></b>N/A <br /><b><a href="http://acfile.com/Faq/spyware.html"><font color="#cc0000">间谍软件：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/adware.html"><font color="#cc0000">广告软件：</font></a></b>No <br /><b><a href="http://acfile.com/Faq/bingdu.html"><font color="#cc0000">病毒：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/muma.html"><font color="#cc0000">木马：</font></a></b>No <br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834048@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  13:42</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[scvhost.exe - scvhost ]]>
				</title>
				<link>http://hike.bokee.com/5834047.html</link>
				<description>
					<![CDATA[<p><strong>进程文件：</strong> scvhost or scvhost.exe <br /><b>进程名称：</b> W32/Agobot-S virus <br /><b>进程类别：</b>系统进程<br /><b>英文描述：</b><br />scvhost.exe is a process which is registered as the W32/Agobot-S virus. This Trojan allows attackers to access your computer, stealing passwords and personal data. It is a registered security risk and should be removed immediately. Please see additional <br /><b>中文参考： </b><br />scvhost.exe是W32/Agobot-S病毒的一部分。该木马允许攻击者访问你的计算机，窃取密码和个人数据。这个进程的安全等级是建议立即进行删除。 <br /><b>出品者：</b>na <br /><b>属于：</b>W32/Agobot-S virus <br /><b>系统进程：</b>No <br /><b>后台程序：</b>Yes <br /><b>网络相关：</b>Yes <br /><b>常见错误：</b>N/A <br /><b>内存使用：</b>N/A <br /><b><font color="#cc0000">安全等级 (0-5): </font></b>4 <br /><b><a href="http://acfile.com/Faq/spyware.html"><font color="#cc0000">间谍软件：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/adware.html"><font color="#cc0000">广告软件：</font></a></b>No <br /><b><a href="http://acfile.com/Faq/bingdu.html"><font color="#cc0000">病毒：</font></a></b>Yes <br /><b><a href="http://www.acfile.com/Faq/muma.html"><font color="#cc0000">木马：</font></a></b>Yes <br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834047@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  13:41</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[sdii.exe - sdii ]]>
				</title>
				<link>http://hike.bokee.com/5834046.html</link>
				<description>
					<![CDATA[<p><strong>进程文件：</strong> sdii or sdii.exe <br /><b>进程名称：</b> Microtek Scanner Console <br /><b>进程类别：</b>存在安全风险的进程<br /><b>英文描述：</b><br />sdii.exe is an executable of the Microtek Scanner Console. This process will allows computer to scanner communication e.g. automatic scanning when the go button is pressed. <br /><b>中文参考： </b><br />sdii.exe是Microtek扫描仪相关程序。用于检测扫描仪的连接和“处理GO”按钮的指令。 <br /><b>出品者：</b>Microtek <br /><b>属于：</b>Microtek Scanner Console <br /><b>系统进程：</b>No <br /><b>后台程序：</b>Yes <br /><b>网络相关：</b>No <br /><b>常见错误：</b>N/A <br /><b>内存使用：</b>N/A <br /><b><font color="#cc0000">安全等级 (0-5): </font></b>0 <br /><b><a href="http://acfile.com/Faq/spyware.html"><font color="#cc0000">间谍软件：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/adware.html"><font color="#cc0000">广告软件：</font></a></b>No <br /><b><a href="http://acfile.com/Faq/bingdu.html"><font color="#cc0000">病毒：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/muma.html"><font color="#cc0000">木马：</font></a></b>No <br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834046@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  13:41</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[SDMCP.exe - SDMCP ]]>
				</title>
				<link>http://hike.bokee.com/5834041.html</link>
				<description>
					<![CDATA[<p><strong>进程文件：</strong> SDMCP or SDMCP.exe <br /><b>进程名称：</b> Stardock Desktop Personalizer <br /><b>进程类别：</b>应用进程<br /><b>英文描述：</b><br />SDMCP.exe is a part of the Stardock Desktop Personalizer which offers an alternate look to your Windows experience with Desktop skins, icons and the assigning of hotkeys <br /><b>中文参考： </b><br />SDMCP.exe是Stardock Desktop Personalizer软件的一部分，提供Windows桌面主题的更换。 <br /><b>出品者：</b>Stardock Corperation <br /><b>属于：</b>Stardock Desktop Personalizer <br /><b>系统进程：</b>No <br /><b>后台程序：</b>No <br /><b>网络相关：</b>No <br /><b>常见错误：</b>N/A <br /><b>内存使用：</b>N/A <br /><b><font color="#cc0000">安全等级 (0-5): </font></b>0 <br /><b><a href="http://acfile.com/Faq/spyware.html"><font color="#cc0000">间谍软件：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/adware.html"><font color="#cc0000">广告软件：</font></a></b>No <br /><b><a href="http://acfile.com/Faq/bingdu.html"><font color="#cc0000">病毒：</font></a></b>No <br /><b><a href="http://www.acfile.com/Faq/muma.html"><font color="#cc0000">木马：</font></a></b>No <br /></p>]]>
				</description>
				<guid isPermaLink="false">
					5834041@http://hike.bokee.com/
				</guid>
				<dc:subject></dc:subject>
				<dc:date>2006-11-6  13:40</dc:date>
			</item>
					<item>
				<title>
					<![CDATA[sdstat.exe - sdstat ]]>
				</title>
				<link>http://hike.bokee.com/5834036.html</link>
				<description>
					<![CDATA[<p><strong>进程文件：</strong> sdstat or sdstat.exe <br /><b>进程名称：</b> TOSHIBA FlashPath Status <br /><b>进程类别：</b>存在安全风险的进程<br /><b>英文描述：</b><br />sdstat.exe is a process by Toshiba which informs you, via a taskbar icon of the battery status. This program is important for the stable and secure running of your computer and should not be terminated. <br /><b>中文参考： </b><br />sdstat.exe是东芝Toshiba电脑系统托盘相关程序，用于显示电池状态。 <b