<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9217114</id><updated>2012-01-11T18:36:37.439+08:00</updated><category term='WIKI'/><category term='虚拟光驱'/><category term='Tiddly'/><category term='网络围绕人'/><category term='Excel，合并，多个'/><category term='双拼'/><category term='密码'/><category term='搜狗、自定义、短语、配置文件'/><category term='privacy'/><category term='能源'/><category term='清除烦恼'/><category term='Windows7'/><category term='邮件'/><category term='firefox'/><category term='固话死亡'/><category term='程序 SUDOKU'/><category term='教育'/><category term='1837'/><category term='域名劫持'/><category term='职场'/><category term='有道难题'/><category term='GFW'/><category term='让爱传出去、把愛傳出去'/><category term='工具'/><category term='1929'/><category term='生活方式'/><category term='excel 2007'/><category term='2008'/><category term='电影、抢劫、教堂、第一个周日'/><category term='安全'/><category term='常用软件端口'/><category term='经济战争'/><category term='HTC'/><category term='Gadget'/><category term='Send Feedback'/><category term='自带浏览器'/><category term='dm'/><category term='wifi'/><category term='乱码 消除'/><category term='去掉'/><category term='AHK'/><category term='飞客'/><category term='启用'/><category term='浏览器'/><category term='Foxmail'/><category term='google-chrome'/><category term='启动工具'/><category term='ASCII码表'/><category term='辅助码'/><category term='Word'/><category term='多普达'/><category term='引力波'/><category term='da eb 4c c62'/><category term='父亲'/><category term='脚本'/><category term='5•12'/><category term='学习'/><category term='快捷'/><category term='乱码'/><category term='gTalk'/><category term='EDL'/><category term='Conficker'/><category term='黑莓'/><category term='输入法'/><category term='MonkeyGTD'/><category term='Miranda'/><category term='进制转换'/><category term='避其锋芒'/><category term='agent'/><category term='硬盘'/><category term='USB DRIVE'/><category term='刷机'/><category term='功能'/><category term='孩子'/><category term='搞笑'/><category term='word、文件修复'/><category term='proxy'/><category term='Google应用'/><category term='拼音输入法'/><category term='序列号'/><category term='Magic Formation'/><category term='乱码、文档、DocRepair、修复'/><category term='TheWorld 浏览器 Tor 代理'/><category term='S1'/><category term='条码'/><category term='操作系统'/><category term='软件'/><category term='车牌号'/><category term='语文'/><category term='TOP'/><category term='求职'/><category term='XP、大内存、优化'/><category term='饮食'/><category term='电影'/><category term='excel'/><category term='健康'/><category term='技巧'/><category term='电脑 文件头 乱码 文档 office'/><category term='Chrome'/><category term='THUMB DRIVE'/><category term='漏洞'/><category term='问题'/><category term='宏'/><category term='chat'/><category term='sheet'/><category term='不作恶'/><category term='Bookmark'/><category term='36进制'/><category term='来电显示'/><category term='SSL'/><category term='双拼 键盘 编码 徐氏双拼 紫光双拼 智能ABC双拼 徐氏双拼 紫光双拼 智能ABC双拼 微软双拼 自然码 黑马神拼'/><category term='两个Notepad'/><category term='微软'/><category term='防火墙'/><category term='扫雷秘技'/><category term='7022'/><category term='保存'/><category term='Dump 转存'/><category term='大萧条'/><category term='FEATURE'/><category term='病毒'/><category term='手机 掉 水里 怎么办'/><category term='语录 娱乐'/><category term='基因'/><category term='Ad Block Plus'/><category term='OSN'/><category term='GETTING THINGS DONE'/><category term='Google'/><category term='自由、民主、平等和正义'/><category term='JS cookie jquery   Chrome javascript save  cookie'/><category term='AutoHotkey'/><category term='超级计算机'/><category term='GTD'/><category term='adblock'/><category term='讓愛傳出去、让爱传出去、把爱传出去'/><category term='blackberry'/><category term='简拼'/><category term='Google Talk'/><category term='双拼 练习 软件'/><category term='twitter'/><category term='联通'/><category term='vlookup'/><category term='RFID'/><category term='WinHex'/><category term='本本编辑'/><category term='价值观'/><category term='gmail'/><category term='扩展'/><category term='1873'/><title type='text'>生存还是毁灭</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default?start-index=101&amp;max-results=100'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>162</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9217114.post-7771520776719778077</id><published>2009-09-24T20:00:00.001+08:00</published><updated>2009-09-25T13:19:42.271+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='车牌号'/><category scheme='http://www.blogger.com/atom/ns#' term='条码'/><category scheme='http://www.blogger.com/atom/ns#' term='36进制'/><category scheme='http://www.blogger.com/atom/ns#' term='序列号'/><title type='text'>算法挑战 36进制条码序列号生成器[修正]</title><content type='html'>&lt;p&gt;问题描述：    &lt;br /&gt;条码打印.要求是唯一的序列.中间有一个日期,最后3位为流水号.但打印的张数会超过999;     &lt;br /&gt;因此必须用到26个大写字母,用36进制的话3位可以表示36*36*36=46656个数字。     &lt;br /&gt;现在要求如下：     &lt;br /&gt;999以前就是普通数字(001~999),再多就开始在百位使用字母     &lt;br /&gt;即999的后一个数字为A00此时十位和个位还不能使用字母(平时打印会少于3600张,为了客户看起来方便),     &lt;br /&gt;只有在百位将Z用完后才允许在十位使用字母,十位用完才允许个位使用字母     &lt;br /&gt;注意事项:     &lt;br /&gt;1)不能重复     &lt;br /&gt;2)数字个数应达到46656个     &lt;br /&gt;3)效率不能太低     &lt;br /&gt;4)请在本地测试没有重复序列号     &lt;br /&gt;博客： &lt;a href="http://www.cnblogs.com/shinn/archive/2008/04/22/1147473.html"&gt;http://www.cnblogs.com/shinn/archive/2008/04/22/1147473.html&lt;/a&gt; 给了算法思路，但他的代码有问题。     &lt;br /&gt;我的分析：&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img border="0" alt="[jjwt.png]" src="http://2.bp.blogspot.com/_phpN_dG8S_I/SrstsDTYuZI/AAAAAAAAAOM/F-cofjPP9Jw/s1600/jjwt.png" width="775" height="405" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img border="0" alt="[jieguo.png]" src="http://4.bp.blogspot.com/_phpN_dG8S_I/SrstsmlU1VI/AAAAAAAAAOU/u0APKvQ8zNs/s1600/jieguo.png" width="783" height="277" /&gt;&lt;/p&gt;  &lt;p&gt;我的代码：&lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt"&gt;   &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt;/*&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; * Created by SharpDevelop.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; * User: liuyk&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; * Date: 2009-9-22&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; * Time: 22:05&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; */&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green; font-weight: bold"&gt;using &lt;/span&gt;System&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green; font-weight: bold"&gt;namespace &lt;/span&gt;ConvertTo36X&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;&lt;/span&gt;&lt;span style="color: gray; font-weight: bold"&gt;summary&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: gray"&gt;&amp;#160;&amp;#160;&amp;#160; /// &lt;/span&gt;&lt;span style="color: green"&gt;把[0-46655]转换成36进制的3位序列.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;&lt;/span&gt;&lt;span style="color: gray; font-weight: bold"&gt;/summary&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: gray"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;public &lt;/span&gt;&lt;span style="color: red"&gt;class &lt;/span&gt;ConvertTo36X&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #006400"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;private &lt;/span&gt;&lt;span style="color: #a52a2a"&gt;readonly &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;char&lt;/span&gt;&lt;span style="color: #006400"&gt;[] &lt;/span&gt;Char26&lt;span style="color: #006400"&gt;=&lt;/span&gt;&lt;span style="color: #008b8b; font-weight: bold"&gt;new &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;char&lt;/span&gt;&lt;span style="color: #006400"&gt;[]{&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'A'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'B'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'C'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'D'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'E'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'F'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'G'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'H'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'I'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'J'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'K'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'L'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'M'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'N'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'O'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'P'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'Q'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'R'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'S'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'T'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'U'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'V'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'W'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'X'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'Y'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'Z'&lt;/span&gt;&lt;span style="color: #006400"&gt;};&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;private &lt;/span&gt;&lt;span style="color: #a52a2a"&gt;readonly &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;char&lt;/span&gt;&lt;span style="color: #006400"&gt;[] &lt;/span&gt;Char36&lt;span style="color: #006400"&gt;=&lt;/span&gt;&lt;span style="color: #008b8b; font-weight: bold"&gt;new &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;char&lt;/span&gt;&lt;span style="color: #006400"&gt;[]{&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'0'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'1'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'2'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'3'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'4'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'5'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'6'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'7'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'8'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'9'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'A'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'B'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'C'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'D'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'E'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'F'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'G'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'H'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'I'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'J'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'K'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'L'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'M'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'N'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'O'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'P'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'Q'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'R'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'S'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'T'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'U'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'V'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'W'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'X'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'Y'&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;&lt;span style="color: fuchsia"&gt;'Z'&lt;/span&gt;&lt;span style="color: #006400"&gt;};&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;public &lt;/span&gt;&lt;span style="color: red"&gt;string &lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;ConvertNum&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int &lt;/span&gt;num&lt;span style="color: #006400"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;if&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;num&lt;span style="color: #006400"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #00008b"&gt;0 &lt;/span&gt;&lt;span style="color: #006400"&gt;|| &lt;/span&gt;num&lt;span style="color: #006400"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #00008b"&gt;46655&lt;/span&gt;&lt;span style="color: #006400"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: teal; font-weight: bold"&gt;throw &lt;/span&gt;&lt;span style="color: #008b8b; font-weight: bold"&gt;new &lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;Exception&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;输入的数字超出范围&amp;quot;&lt;/span&gt;&lt;span style="color: #006400"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;else if&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;num&lt;span style="color: #006400"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: #00008b"&gt;12960&lt;/span&gt;&lt;span style="color: #006400"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;string &lt;/span&gt;&lt;span style="font-weight: bold"&gt;value&lt;/span&gt;&lt;span style="color: #006400"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;num&lt;span style="color: #006400"&gt;-=&lt;/span&gt;&lt;span style="color: #00008b"&gt;12960&lt;/span&gt;&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;char &lt;/span&gt;h&lt;span style="color: #006400"&gt;=&lt;/span&gt;Char36&lt;span style="color: #006400"&gt;[((&lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int&lt;/span&gt;&lt;span style="color: #006400"&gt;) (&lt;/span&gt;num&lt;span style="color: #006400"&gt;/&lt;/span&gt;&lt;span style="color: #00008b"&gt;936&lt;/span&gt;&lt;span style="color: #006400"&gt;))%&lt;/span&gt;&lt;span style="color: #00008b"&gt;36&lt;/span&gt;&lt;span style="color: #006400"&gt;];&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;char &lt;/span&gt;t&lt;span style="color: #006400"&gt;=&lt;/span&gt;Char36&lt;span style="color: #006400"&gt;[((&lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int&lt;/span&gt;&lt;span style="color: #006400"&gt;) (&lt;/span&gt;num&lt;span style="color: #006400"&gt;/&lt;/span&gt;&lt;span style="color: #00008b"&gt;26&lt;/span&gt;&lt;span style="color: #006400"&gt;))%&lt;/span&gt;&lt;span style="color: #00008b"&gt;36&lt;/span&gt;&lt;span style="color: #006400"&gt;];&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;char &lt;/span&gt;d&lt;span style="color: #006400"&gt;=&lt;/span&gt;Char26&lt;span style="color: #006400"&gt;[&lt;/span&gt;num&lt;span style="color: #006400"&gt;%&lt;/span&gt;&lt;span style="color: #00008b"&gt;26&lt;/span&gt;&lt;span style="color: #006400"&gt;];&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: navy"&gt;return &lt;/span&gt;&lt;span style="font-weight: bold"&gt;value&lt;/span&gt;&lt;span style="color: #006400"&gt;+&lt;/span&gt;h&lt;span style="color: #006400"&gt;+&lt;/span&gt;t&lt;span style="color: #006400"&gt;+&lt;/span&gt;d&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;else if&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;num&lt;span style="color: #006400"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: #00008b"&gt;3600&lt;/span&gt;&lt;span style="color: #006400"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;string &lt;/span&gt;&lt;span style="font-weight: bold"&gt;value&lt;/span&gt;&lt;span style="color: #006400"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;num&lt;span style="color: #006400"&gt;-=&lt;/span&gt;&lt;span style="color: #00008b"&gt;3600&lt;/span&gt;&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;char &lt;/span&gt;h&lt;span style="color: #006400"&gt;=&lt;/span&gt;Char36&lt;span style="color: #006400"&gt;[(&lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int&lt;/span&gt;&lt;span style="color: #006400"&gt;)((&lt;/span&gt;num&lt;span style="color: #006400"&gt;%&lt;/span&gt;&lt;span style="color: #00008b"&gt;360&lt;/span&gt;&lt;span style="color: #006400"&gt;)/&lt;/span&gt;&lt;span style="color: #00008b"&gt;10&lt;/span&gt;&lt;span style="color: #006400"&gt;)];&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;char &lt;/span&gt;t&lt;span style="color: #006400"&gt;=&lt;/span&gt;Char26&lt;span style="color: #006400"&gt;[(&lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int&lt;/span&gt;&lt;span style="color: #006400"&gt;)(&lt;/span&gt;num&lt;span style="color: #006400"&gt;/&lt;/span&gt;&lt;span style="color: #00008b"&gt;360&lt;/span&gt;&lt;span style="color: #006400"&gt;)];&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int &lt;/span&gt;d&lt;span style="color: #006400"&gt;=&lt;/span&gt;num&lt;span style="color: #006400"&gt;%&lt;/span&gt;&lt;span style="color: #00008b"&gt;10&lt;/span&gt;&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: navy"&gt;return &lt;/span&gt;&lt;span style="font-weight: bold"&gt;value&lt;/span&gt;&lt;span style="color: #006400"&gt;+&lt;/span&gt;h&lt;span style="color: #006400"&gt;+&lt;/span&gt;t&lt;span style="color: #006400"&gt;+&lt;/span&gt;d&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;else if&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;num&lt;span style="color: #006400"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: #00008b"&gt;10&lt;/span&gt;&lt;span style="color: #006400"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;string &lt;/span&gt;&lt;span style="font-weight: bold"&gt;value&lt;/span&gt;&lt;span style="color: #006400"&gt;=&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;char &lt;/span&gt;h&lt;span style="color: #006400"&gt;=&lt;/span&gt;Char36&lt;span style="color: #006400"&gt;[(&lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int&lt;/span&gt;&lt;span style="color: #006400"&gt;)(&lt;/span&gt;num&lt;span style="color: #006400"&gt;/&lt;/span&gt;&lt;span style="color: #00008b"&gt;100&lt;/span&gt;&lt;span style="color: #006400"&gt;)];&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;num&lt;span style="color: #006400"&gt;=&lt;/span&gt;num&lt;span style="color: #006400"&gt;%&lt;/span&gt;&lt;span style="color: #00008b"&gt;100&lt;/span&gt;&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int &lt;/span&gt;t&lt;span style="color: #006400"&gt;=(&lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int&lt;/span&gt;&lt;span style="color: #006400"&gt;)(&lt;/span&gt;num&lt;span style="color: #006400"&gt;/&lt;/span&gt;&lt;span style="color: #00008b"&gt;10&lt;/span&gt;&lt;span style="color: #006400"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int &lt;/span&gt;d&lt;span style="color: #006400"&gt;=&lt;/span&gt;num&lt;span style="color: #006400"&gt;%&lt;/span&gt;&lt;span style="color: #00008b"&gt;10&lt;/span&gt;&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: navy"&gt;return &lt;/span&gt;&lt;span style="font-weight: bold"&gt;value&lt;/span&gt;&lt;span style="color: #006400"&gt;+&lt;/span&gt;h&lt;span style="color: #006400"&gt;+&lt;/span&gt;t&lt;span style="color: #006400"&gt;+&lt;/span&gt;d&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;else&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: blue; font-weight: bold"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #006400"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: navy"&gt;return &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;00&amp;quot;&lt;/span&gt;&lt;span style="color: #006400"&gt;+&lt;/span&gt;num&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt"&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt;/*&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; * Created by SharpDevelop.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; * User: liuyk&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; * Date: 2009-9-24&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; * Time: 17:09&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; * &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; * To change this template use Tools | Options | Coding | Edit Standard Headers.&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt; */&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green; font-weight: bold"&gt;using &lt;/span&gt;System&lt;span style="color: #006400"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green; font-weight: bold"&gt;using&amp;#160;&amp;#160; &lt;/span&gt;System&lt;span style="color: #006400"&gt;.&lt;/span&gt;IO&lt;span style="color: #006400"&gt;;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green; font-weight: bold"&gt;namespace &lt;/span&gt;ConvertTo36X&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: red"&gt;class &lt;/span&gt;TestConvertTo36&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #006400"&gt;{&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;public &lt;/span&gt;&lt;span style="color: #a52a2a"&gt;static &lt;/span&gt;&lt;span style="color: red"&gt;void &lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;Main&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;&lt;span style="color: red"&gt;string&lt;/span&gt;&lt;span style="color: #006400"&gt;[] &lt;/span&gt;args&lt;span style="color: #006400"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Console&lt;span style="color: #006400"&gt;.&lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;WriteLine&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;Hello World!&amp;quot;&lt;/span&gt;&lt;span style="color: #006400"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: green"&gt;// &lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;TODO&lt;/span&gt;&lt;span style="color: green"&gt;: Implement Functionality Here&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;ConvertTo36X xx&lt;span style="color: #006400"&gt;=&lt;/span&gt;&lt;span style="color: #008b8b; font-weight: bold"&gt;new &lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;ConvertTo36X&lt;/span&gt;&lt;span style="color: #006400"&gt;();&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;FileStream&amp;#160;&amp;#160; fileName&amp;#160; &lt;span style="color: #006400"&gt;=&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #008b8b; font-weight: bold"&gt;new&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;FileStream&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;Temp.txt&amp;quot;&lt;/span&gt;&lt;span style="color: #006400"&gt;,&lt;/span&gt;FileMode&lt;span style="color: #006400"&gt;.&lt;/span&gt;OpenOrCreate&lt;span style="color: #006400"&gt;);&amp;#160; &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;StreamWriter sw &lt;span style="color: #006400"&gt;= &lt;/span&gt;&lt;span style="color: #008b8b; font-weight: bold"&gt;new &lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;StreamWriter&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;fileName&lt;span style="color: #006400"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: green"&gt;//System.Console.WriteLine(xx.ConvertNum(46655));&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: green"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue; font-weight: bold"&gt;for &lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;&lt;span style="color: red; font-weight: bold"&gt;int &lt;/span&gt;j&lt;span style="color: #006400"&gt;=&lt;/span&gt;&lt;span style="color: #00008b"&gt;0&lt;/span&gt;&lt;span style="color: #006400"&gt;;&lt;/span&gt;j&lt;span style="color: #006400"&gt;&amp;lt;=&lt;/span&gt;&lt;span style="color: #00008b"&gt;46655&lt;/span&gt;&lt;span style="color: #006400"&gt;;&lt;/span&gt;j&lt;span style="color: #006400"&gt;++){&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;System&lt;span style="color: #006400"&gt;.&lt;/span&gt;Console&lt;span style="color: #006400"&gt;.&lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;WriteLine&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;j&lt;span style="color: #006400"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;sw&lt;span style="color: #006400"&gt;.&lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;WriteLine&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;xx&lt;span style="color: #006400"&gt;.&lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;ConvertNum&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;j&lt;span style="color: #006400"&gt;)); &lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;sw&lt;span style="color: #006400"&gt;.&lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;Close&lt;/span&gt;&lt;span style="color: #006400"&gt;();&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Console&lt;span style="color: #006400"&gt;.&lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;Write&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;quot;Press any key to continue . . . &amp;quot;&lt;/span&gt;&lt;span style="color: #006400"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Console&lt;span style="color: #006400"&gt;.&lt;/span&gt;&lt;span style="color: #191970; font-weight: bold"&gt;ReadKey&lt;/span&gt;&lt;span style="color: #006400"&gt;(&lt;/span&gt;&lt;span style="color: #008b8b; font-weight: bold"&gt;true&lt;/span&gt;&lt;span style="color: #006400"&gt;);&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="margin: 0px"&gt;&lt;span style="color: #006400"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-7771520776719778077?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/7771520776719778077/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=7771520776719778077' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7771520776719778077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7771520776719778077'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/09/36_24.html' title='算法挑战 36进制条码序列号生成器[修正]'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_phpN_dG8S_I/SrstsDTYuZI/AAAAAAAAAOM/F-cofjPP9Jw/s72-c/jjwt.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-6500174371399668845</id><published>2009-09-24T15:06:00.010+08:00</published><updated>2009-09-24T20:02:32.113+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='进制转换'/><title type='text'>把数字转换成36进制</title><content type='html'>把数字转换成36进制&lt;br /&gt;36进制包括0-9和a-z，只有整形的可以转换。&lt;br /&gt;long i=1234567890L;&lt;br /&gt;System.out.println(Long.toString(i,36).toLowerCase());&lt;br /&gt;输出:kf12oi&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-6500174371399668845?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/6500174371399668845/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=6500174371399668845' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6500174371399668845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6500174371399668845'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/09/36.html' title='把数字转换成36进制'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-7211285700355081201</id><published>2009-09-03T17:07:00.003+08:00</published><updated>2009-09-03T17:22:00.149+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GTD'/><category scheme='http://www.blogger.com/atom/ns#' term='Tiddly'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='MonkeyGTD'/><title type='text'>如何让Chrome支持MonkeyGTD、Tiddly本地存储？</title><content type='html'>问题：&lt;br /&gt;————————————————————————————————————————&lt;br /&gt;有用以下GTD工具的吗？&lt;br /&gt;MonkeyGTD 3.0----GTD system based on MPTW.&lt;br /&gt;d3 (new version)----GTD system from dcubed.ca （&lt;a href="http://www.dcubed.ca/Welcome_to_d-cubed.html"&gt;http://www.dcubed.ca/Welcome_to_d-cubed.html&lt;/a&gt; 需要翻墙）&lt;br /&gt;我现在只能用Firefox使用上述工具，IE太慢，GoogleChrome不能本地存储。 想请问各位高人，如何让Chrome打开JavaScript本地存储功能？&lt;br /&gt;——————————————————————————————————————————&lt;br /&gt;解答：&lt;br /&gt;1、到 &lt;a href="http://monkeygtd.blogspot.com/2008/09/monkeygtd-and-chrome-new-best-friends.html"&gt;http://monkeygtd.blogspot.com/2008/09/monkeygtd-and-chrome-new-best-friends.html&lt;/a&gt; 网站下载TiddlySaver.jar&lt;br /&gt;2、到&lt;a href="http://java.com/"&gt;http://java.com&lt;/a&gt; 下载最新版 java&lt;br /&gt;3、把TiddlySaver.jar 和monkeygtd.html或者d3_doit_delegateit_deferit的htm文件&lt;br /&gt;放到同一个路径下。&lt;br /&gt;4、在最新版本的Chrome里打开本地的monkeygtd.html，提示安装时点同意。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-7211285700355081201?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/7211285700355081201/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=7211285700355081201' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7211285700355081201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7211285700355081201'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/09/chromemonkeygtdtiddly.html' title='如何让Chrome支持MonkeyGTD、Tiddly本地存储？'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-4511614654591696579</id><published>2009-09-03T10:08:00.000+08:00</published><updated>2009-09-03T10:10:07.651+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agent'/><title type='text'>Puff the magic dragon</title><content type='html'>&lt;a href="http://hi.baidu.com/fiber/blog/item/7c0b9cef7de244e6ce1b3e2c.html"&gt;http://hi.baidu.com/fiber/blog/item/7c0b9cef7de244e6ce1b3e2c.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-4511614654591696579?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/4511614654591696579/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=4511614654591696579' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/4511614654591696579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/4511614654591696579'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/09/puff-magic-dragon.html' title='Puff the magic dragon'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-598377091662994321</id><published>2009-06-01T15:50:00.001+08:00</published><updated>2009-06-01T15:53:06.525+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GFW'/><title type='text'>blogspot.com是不是又抽风了？</title><content type='html'>刚用得舒服，就不能访问了。郁闷。。。不知何故&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-598377091662994321?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/598377091662994321/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=598377091662994321' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/598377091662994321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/598377091662994321'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/06/blogspotcom.html' title='blogspot.com是不是又抽风了？'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-6516361646950385008</id><published>2009-05-15T13:13:00.001+08:00</published><updated>2009-05-15T13:13:42.849+08:00</updated><title type='text'>[转]Chrome启动参数方案</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 14px; color: rgb(51, 51, 51); line-height: 22px; "&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;下面是常用的一些启动参数：&lt;br /&gt;–user-data-dir=UserDataDir   自定义用户数据目录&lt;br /&gt;–start-maximized   启动就最大化&lt;br /&gt;–no-sandbox   取消沙盒模式&lt;br /&gt;–single-process   单进程运行&lt;br /&gt;–process-per-tab   每个标签使用单独进程&lt;br /&gt;–process-per-site   每个站点使用单独进程&lt;br /&gt;–in-process-plugins   插件不启用单独进程&lt;br /&gt;–disable-popup-blocking   禁用弹出拦截&lt;br /&gt;–disable-javascript   禁用JavaScript&lt;br /&gt;–disable-java   禁用Java&lt;br /&gt;–disable-plugins   禁用插件&lt;br /&gt;–disable-images   禁用图像&lt;br /&gt; &lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;A Complete list to Google Chrome Startup Switches…&lt;br /&gt;see below&lt;br /&gt; &lt;/div&gt;&lt;div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; "&gt;-disable-hang-monitor&lt;br /&gt;-disable-metrics&lt;br /&gt;-disable-metrics-reporting&lt;br /&gt;-assert-test&lt;br /&gt;-renderer-assert-test&lt;br /&gt;-crash-test&lt;br /&gt;-renderer-crash-test&lt;br /&gt;-renderer-startup-dialog&lt;br /&gt;-plugin-startup-dialog&lt;br /&gt;-testshell-startup-dialog&lt;br /&gt;-plugin-launcher&lt;br /&gt;-channeltesting-channel&lt;br /&gt;-homepagestart-renderers-manuallyrenderer&lt;br /&gt;-renderer-pathplugin&lt;br /&gt;-single-process&lt;br /&gt;-process-per-tab&lt;br /&gt;-process-per-site&lt;br /&gt;-in-process-plugins&lt;br /&gt;-no-sandbox&lt;br /&gt;-safe-plugins&lt;br /&gt;-trusted-plugins&lt;br /&gt;-test-sandbox&lt;br /&gt;-user-data-dir&lt;br /&gt;-appupload-file&lt;br /&gt;-dom-automation&lt;br /&gt;-plugin-pathjs-flags&lt;br /&gt;-geoidlangdebug-children&lt;br /&gt;-wait-for-debugger-children&lt;br /&gt;-log-filter-prefix&lt;br /&gt;-enable-logging&lt;br /&gt;-dump-histograms-on-exit&lt;br /&gt;-disable-logging&lt;br /&gt;-remote-shell-port&lt;br /&gt;-uninstallomnibox-popup-count&lt;br /&gt;-automation-channel&lt;br /&gt;-restore-last-session&lt;br /&gt;-record-mode&lt;br /&gt;-playback-mode&lt;br /&gt;-no-events&lt;br /&gt;-hide-icons&lt;br /&gt;-show-icons&lt;br /&gt;-make-default-browser&lt;br /&gt;-proxy-server&lt;br /&gt;-dns-log-details&lt;br /&gt;-dns-prefetch-disable&lt;br /&gt;-debug-print&lt;br /&gt;-allow-all-activex&lt;br /&gt;-disable-dev-tools&lt;br /&gt;-always-enable-dev-tools&lt;br /&gt;-memory-model&lt;br /&gt;-tab-count-to-load-on-session-restore&lt;br /&gt;-memory-profile&lt;br /&gt;-enable-file-cookies&lt;br /&gt;-start-maximized&lt;br /&gt;-enable-watchdogfirst-run&lt;br /&gt;-message-loop-strategy&lt;br /&gt;-message-loop-histogrammer&lt;br /&gt;-importsilent-dump-on-dcheck&lt;br /&gt;-disable-prompt-on-repost&lt;br /&gt;-disable-popup-blocking&lt;br /&gt;-disable-javascript&lt;br /&gt;-disable-java&lt;br /&gt;-disable-plugins&lt;br /&gt;-disable-images&lt;br /&gt;-use-lf-heap&lt;br /&gt;-new-http&lt;br /&gt; &lt;br /&gt;本文来源于谷歌Chrome中文站 &lt;a href="http://www.downdig.com/chrome" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; color: rgb(0, 84, 179); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; "&gt;http://www.downdig.com/chrome&lt;/a&gt; , 原文地址：&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-6516361646950385008?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/6516361646950385008/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=6516361646950385008' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6516361646950385008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6516361646950385008'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/chrome_1454.html' title='[转]Chrome启动参数方案'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-6588136651461961006</id><published>2009-05-15T13:11:00.000+08:00</published><updated>2009-05-15T13:12:34.341+08:00</updated><title type='text'>Chrome启动参数及地址栏功能</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 12px; line-height: 18px; "&gt;&lt;div class="t_msgfont"&gt;&lt;span class="t_tag"&gt;&lt;span class="hilite1" style="background-color: rgb(255, 255, 0); "&gt;Chrome&lt;/span&gt;&lt;/span&gt;启动参数及地址栏&lt;span class="t_tag"&gt;功能&lt;/span&gt;，希望各位大力支持（持续更新）。&lt;br /&gt;&lt;/div&gt;&lt;div class="t_msgfont"&gt;转: &lt;a href="http://bbs.webmou.com/thread-2343-1-1.html" style="color: black; text-decoration: underline; "&gt;http://bbs.webmou.com/thread-2343-1-1.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-weight: bold; "&gt;启动参数&lt;/strong&gt;&lt;br /&gt;--disable-plugins   禁用&lt;span class="t_tag"&gt;插件&lt;/span&gt;&lt;br /&gt;--User-data-dir=dir  设置缓存&lt;br /&gt;--single-process  单线程模式&lt;br /&gt;--no-sandbox   非沙箱模式&lt;br /&gt;process-per-tab   每个标签使用单独进程&lt;br /&gt;process-per-site  每个站点使用单独进程&lt;br /&gt;in-process-plugins  插件不启动单独进程&lt;br /&gt;start-maximized   启动就最大化&lt;br /&gt;first-run  第一次运行&lt;br /&gt;disable-popup-blocking  禁用弹出拦截&lt;br /&gt;disable-javascript   禁用javascript&lt;br /&gt;disable-java   禁用java&lt;br /&gt;disable-images  禁用图像&lt;br /&gt;&lt;br /&gt;disable-hang-monitor&lt;br /&gt;disable-metrics&lt;br /&gt;disable-metrics-reporting&lt;br /&gt;assert-test&lt;br /&gt;renderer-assert-test&lt;br /&gt;crash-test&lt;br /&gt;renderer-crash-test&lt;br /&gt;renderer-startup-dialog&lt;br /&gt;plugin-startup-dialog&lt;br /&gt;testshell-startup-dialog&lt;br /&gt;plugin-launcher&lt;br /&gt;channel&lt;br /&gt;testing-channel&lt;br /&gt;homepage&lt;br /&gt;start-renderers-manually&lt;br /&gt;renderer&lt;br /&gt;renderer-path&lt;br /&gt;plugin&lt;br /&gt;safe-plugins&lt;br /&gt;trusted-plugins&lt;br /&gt;test-sandbox&lt;br /&gt;app&lt;br /&gt;upload-file&lt;br /&gt;dom-automation&lt;br /&gt;plugin-path&lt;br /&gt;js-flags&lt;br /&gt;geoid&lt;br /&gt;lang&lt;br /&gt;de&lt;span class="t_tag"&gt;bug&lt;/span&gt;-children&lt;br /&gt;wait-for-debugger-children&lt;br /&gt;log-filter-prefix&lt;br /&gt;&lt;span class="hilite2" style="background-color: rgb(85, 255, 85); "&gt;enable&lt;/span&gt;-logging&lt;br /&gt;disable-logging&lt;br /&gt;log-level&lt;br /&gt;dump-histograms-on-exit&lt;br /&gt;remote-shell-port&lt;br /&gt;uninstall&lt;br /&gt;omnibox-popup-count&lt;br /&gt;automation-channel&lt;br /&gt;restore-last-session&lt;br /&gt;record-mode&lt;br /&gt;playback-mode&lt;br /&gt;no-events&lt;br /&gt;hide-icons&lt;br /&gt;show-icons&lt;br /&gt;make-default-browser&lt;br /&gt;proxy-server&lt;br /&gt;dns-log-details&lt;br /&gt;dns-prefetch-disable&lt;br /&gt;debug-print&lt;br /&gt;allow-all-activex&lt;br /&gt;disable-dev-tools&lt;br /&gt;always-&lt;span class="hilite2" style="background-color: rgb(85, 255, 85); "&gt;enable&lt;/span&gt;-dev-tools&lt;br /&gt;memory-profile&lt;br /&gt;memory-model&lt;br /&gt;&lt;span class="hilite2" style="background-color: rgb(85, 255, 85); "&gt;enable&lt;/span&gt;-file-&lt;span class="hilite3" style="background-color: rgb(170, 255, 170); "&gt;cookies&lt;/span&gt;&lt;br /&gt;&lt;span class="hilite2" style="background-color: rgb(85, 255, 85); "&gt;enable&lt;/span&gt;-watchdog&lt;br /&gt;message-loop-histogrammer&lt;br /&gt;import&lt;br /&gt;silent-dump-on-dcheck&lt;br /&gt;disable-prompt-on-repost&lt;br /&gt;use-lf-heap&lt;br /&gt;gears-plugin-path&lt;br /&gt;gears-in-renderer&lt;br /&gt;new-http&lt;br /&gt;javascript-debugger-path&lt;br /&gt;&lt;span class="hilite2" style="background-color: rgb(85, 255, 85); "&gt;enable&lt;/span&gt;-p13n&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong style="font-weight: bold; "&gt;地址栏功能&lt;/strong&gt;:&lt;br /&gt;about:version - 显示当前版本 也可以是&lt;span class="hilite1" style="background-color: rgb(255, 255, 0); "&gt;chrome&lt;/span&gt;-resource://about/&lt;br /&gt;about:plugins - 显示已安装插件,Google &lt;span class="hilite1" style="background-color: rgb(255, 255, 0); "&gt;Chrome&lt;/span&gt;支持Active X！&lt;br /&gt;about:histograms - 显示历史记录&lt;br /&gt;about:dns - 显示DNS状态&lt;br /&gt;about:cache, 重定向到 view-cache: 显示缓存&lt;span class="t_tag"&gt;页面&lt;/span&gt;&lt;br /&gt;view-cache:stats - 缓存状态&lt;br /&gt;about:stats - 显示状态&lt;br /&gt;about:network - 很酷的&lt;span class="t_tag"&gt;网络&lt;/span&gt;工具&lt;br /&gt;about:internets - 这应该算是一个彩蛋&lt;br /&gt;&lt;span class="hilite1" style="background-color: rgb(255, 255, 0); "&gt;chrome&lt;/span&gt;-resource://new-tab/ - 新标签页&lt;br /&gt;about:memory - 可以查看内存和进程占用。也可以Shift+ESC，点击Statistics for nerds（傻瓜统计信息）&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-6588136651461961006?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/6588136651461961006/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=6588136651461961006' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6588136651461961006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6588136651461961006'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/chrome_15.html' title='Chrome启动参数及地址栏功能'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-5026573293860450279</id><published>2009-05-15T13:06:00.001+08:00</published><updated>2009-05-15T13:08:19.858+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JS cookie jquery   Chrome javascript save  cookie'/><title type='text'>谷歌浏览器(Google Chrome)不支持本地js文件</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 12px; "&gt;&lt;div class="Content-top" style="background-image: url(http://www.lushaolin.com/skins/Nuvola/logIcon.gif); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 44px; color: rgb(0, 0, 0); text-align: left; margin-bottom: 2px; background-position: 3px 2px; "&gt;&lt;h2 class="ContentAuthor" style="color: rgb(102, 102, 102); font-size: 11px; padding-top: 4px; padding-left: 3px; border-top-width: 2px; border-top-style: solid; border-top-color: rgb(219, 219, 208); margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-weight: 100; "&gt;作者:LooseLive 日期:2009-01-06&lt;/h2&gt;&lt;/div&gt;&lt;div class="Content-Info" style="margin-top: 0px; margin-right: 4px; margin-bottom: 6px; margin-left: 4px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="InfoAuthor" style="text-align: left; "&gt;&lt;span class="Apple-style-span" style="line-height: 18px; "&gt;今天在开发一网页时，利用jquery的cookie插件存取cookie，本地一直调试其他浏览器都没有问题，就谷歌浏览器这小子不听使唤，搞的头都大了，怀疑是浏览器的HACK，后来才知道是谷歌浏览器不支持本地文件的JS文件多Cookie的读取。随便把找到的资料给大家阅读下。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="logPanel" class="Content-body" style="margin-top: 8px; margin-right: auto; margin-bottom: 8px; margin-left: auto; overflow-x: hidden; overflow-y: hidden; text-align: left; width: 917px; line-height: 18px; "&gt;&lt;p class="post-text"&gt;I am using the jQuery Cookie plugin (&lt;a href="http://plugins.jquery.com/project/cookie" rel="nofollow" style="text-decoration: none; color: rgb(107, 107, 82); "&gt;download&lt;/a&gt; and &lt;a href="http://stilbuero.de/jquery/cookie/" rel="nofollow" style="text-decoration: none; color: rgb(107, 107, 82); "&gt;demo&lt;/a&gt; and &lt;a href="http://plugins.jquery.com/files/jquery.cookie.js.txt" rel="nofollow" style="text-decoration: none; color: rgb(107, 107, 82); "&gt;source code with comments&lt;/a&gt;) to set and read a cookie. I'm developing the page on my &lt;strong&gt;local machine&lt;/strong&gt;.&lt;/p&gt;&lt;p class="post-text"&gt;The following code will successfully set a cookie in FireFox 3, IE 7, and Safari (PC). But &lt;strong&gt;if the browser is Google Chrome AND the page is a local file&lt;/strong&gt;, it does not work.&lt;/p&gt;&lt;div&gt;&lt;pre class="prettyprint" jquery1231192524796="25"&gt;&lt;code jquery1231192524796="24"&gt;&lt;span class="pln"&gt;$&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="pln"&gt;cookie&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="str"&gt;"nameofcookie"&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; cookievalue&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;path&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="str"&gt;"/"&lt;/span&gt;&lt;span class="pun"&gt;,&lt;/span&gt;&lt;span class="pln"&gt; expires&lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="lit"&gt;30&lt;/span&gt;&lt;span class="pun"&gt;});&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;What I know&lt;/strong&gt;:&lt;/p&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The plugin's &lt;a href="http://stilbuero.de/jquery/cookie/" rel="nofollow" style="text-decoration: none; color: rgb(107, 107, 82); "&gt;demo&lt;/a&gt; works with Chrome.&lt;/li&gt;&lt;li&gt;If I put my code on a web server (address starting with http://), it works with Chrome.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;So the cookie fails only &lt;strong&gt;for Google Chrome on local files&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Possible causes&lt;/strong&gt;:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Google Chrome doesn't accept cookies from web pages on the hard drive (paths like file:///C:/websites/foo.html)&lt;/li&gt;&lt;li&gt;Something in the plugin implentation causes Chrome to reject such cookies&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;&lt;p&gt;Chrome doesn't support cookies for local files unless you start it with the --enable-file-cookies flag. You can read a discussion about it at &lt;a href="http://code.google.com/p/chromium/issues/detail?id=535" rel="nofollow" style="text-decoration: none; color: rgb(107, 107, 82); "&gt;http://code.google.com/p/chromium/issues/detail?id=535&lt;/a&gt;.&lt;/p&gt;&lt;/h3&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-5026573293860450279?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/5026573293860450279/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=5026573293860450279' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/5026573293860450279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/5026573293860450279'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/google-chromejs.html' title='谷歌浏览器(Google Chrome)不支持本地js文件'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-6659721790103885306</id><published>2009-05-15T11:15:00.001+08:00</published><updated>2009-05-15T11:15:47.076+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GETTING THINGS DONE'/><category scheme='http://www.blogger.com/atom/ns#' term='TOP'/><category scheme='http://www.blogger.com/atom/ns#' term='THUMB DRIVE'/><category scheme='http://www.blogger.com/atom/ns#' term='GTD'/><category scheme='http://www.blogger.com/atom/ns#' term='FEATURE'/><category scheme='http://www.blogger.com/atom/ns#' term='WIKI'/><category scheme='http://www.blogger.com/atom/ns#' term='USB DRIVE'/><title type='text'>Get organized with GTDTiddlyWiki</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 12px; line-height: 20px; "&gt;&lt;h1 style="margin-top: 0px; margin-right: 10px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 30px; font-family: inherit; vertical-align: baseline; color: rgb(0, 0, 0); line-height: 1.1em; clear: both; "&gt;&lt;a href="http://lifehacker.com/210354/get-organized-with-gtdtiddlywiki" class="top" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 30px; font-family: inherit; vertical-align: baseline; color: rgb(0, 0, 0); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;Get organized with GTDTiddlyWiki&lt;/a&gt;&lt;/h1&gt;&lt;div class="entry" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 1.23em; font-family: 'Lucida Grande', Tahoma, Verdana, Arial, serif; vertical-align: baseline; line-height: 1.7em; color: rgb(37, 37, 37); "&gt;&lt;div class="post-byline" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; font-family: inherit; vertical-align: baseline; font: normal normal normal 11px/normal 'Lucida Grande', Tahoma, Arial, sans-serif; color: rgb(136, 136, 136); "&gt;By &lt;cite style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; font-family: inherit; vertical-align: baseline; font-style: normal; font-weight: bold; "&gt;&lt;a rel="nofollow" href="http://lifehacker.com/people/Gina/posts/" title="Click here to read posts written by GINA TRAPANI" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; font-family: inherit; vertical-align: baseline; color: rgb(136, 136, 136); text-decoration: underline; font-weight: normal; border-style: initial; border-color: initial; border-style: initial; border-color: initial; "&gt;Gina Trapani&lt;/a&gt;&lt;/cite&gt;, &lt;a rel="nofollow" href="http://lifehacker.com/software/getting-things-done/get-organized-with-gtdtiddlywiki-210354.php" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; font-family: inherit; vertical-align: baseline; color: rgb(136, 136, 136); text-decoration: underline; font-weight: normal; border-style: initial; border-color: initial; border-style: initial; border-color: initial; "&gt;1:30 PM&lt;/a&gt; on Thu Oct 26 2006, 41,820 views &lt;div style="margin-top: -20px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; font-family: inherit; vertical-align: baseline; position: absolute; right: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.lifehacker.com/assets/resources/2006/10/gtdtw-header.png" class="postimg center" width="475" height="127" style="margin-top: 2px; margin-right: auto; margin-bottom: 1em; margin-left: auto; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; float: none; display: block; clear: both; background-position: initial initial; " /&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;by Jason Thomas&lt;/em&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;&lt;iframe src="http://digg.com/api/diggthis.php?u=http://digg.com/software/Get_organized_with_GTDTiddlyWiki" align="right" frameborder="0" height="82" scrolling="no" width="55" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;&lt;/iframe&gt;Everyone has to find their own killer personal organizational app, and for me, it's a single, free HTML document called&lt;a href="http://shared.snapgrid.com/index.html" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;GTDTiddlyWiki&lt;/a&gt;. The self-contained standalone mini-wiki is packed with features but it doesn't dictate how you work - it provides a canvas on which you can design your own &lt;a href="http://www.lifehacker.com/software/kaizen/practice-your-personal-kaizen-207029.php" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;process improvements&lt;/a&gt; and workflows.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;Don't let GTDTiddlyWiki's unusual name put you off. It's one of the best organization apps available, and in fact it beats the pants off all the commercial organizational software I've tried.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;If you're looking for your killer app, today I've got a primer on how I've put GTDTiddlyWiki to work for me.&lt;/p&gt;&lt;h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 1.08em; font-family: Helvetica, Arial, sans-serif; vertical-align: baseline; font-weight: bold; "&gt;What's GTDTiddlyWiki?&lt;/h4&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;GTDTW is an HTML document that you save to your local hard drive and edit there using your web browser. When you save information, it edits itself, and stores what you've written in an internal data format. This is very convenient for people who are into portable apps on USB keys, because it's completely self-contained, always with you and only requires a web browser to edit. It's also very easy to back it up: just send it up to your Gmail account every few days, or better yet &lt;a href="http://www.lifehacker.com/software/email/geek-to-live-automatically-email-yourself-file-backups-168156.php" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;schedule a job to do it for you&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;To download GTDTW, right-click this &lt;a href="http://shared.snapgrid.com/index.html#" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;GTDTiddlyWiki&lt;/a&gt; link and save it to a folder on your desktop. Don't save it to your desktop if you intend to keep it there; I'll explain why in a minute. In fact, you don't even need to save it at all: you can follow through most of this tutorial with the one that's up there on the site.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;Now that you've saved it, load it up in Firefox. You're going to see something like this (click to enlarge):&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;&lt;a href="http://www.lifehacker.com/assets/resources/2006/10/GTDTWScreenshot1.php" onclick="window.open('http://www.lifehacker.com/assets/resources/2006/10/GTDTWScreenshot1.php','popup','width=781,height=642,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;&lt;img src="http://www.lifehacker.com/assets/resources/2006/10/GTDTWScreenshot1-thumb.jpg" class="postimg center" width="475" height="390" style="margin-top: 2px; margin-right: auto; margin-bottom: 1em; margin-left: auto; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; float: none; display: block; clear: both; background-position: initial initial; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;Over there on the left is a menu. That's all editable, and it's one way you can get around in GTDTW.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;Over on the right are what they call "tiddlers." These are analogous to pages in a traditional wiki. You could also say that they're like notecards in a &lt;a href="http://hipsterpda.com/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;Hipster PDA&lt;/a&gt;, and that's no accident: GTDTW was designed from the get-go to work like index card stacks. You can even print tiddlers to index cards, so you have a nice way of dumping out lists and so on for when you're on the go.&lt;/p&gt;&lt;h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 1.08em; font-family: Helvetica, Arial, sans-serif; vertical-align: baseline; font-weight: bold; "&gt;Editing GTDTiddlyWiki&lt;/h4&gt;&lt;img alt="GTDScreenshot2.jpg" src="http://www.lifehacker.com/assets/resources/2006/10/GTDScreenshot2.jpg" width="205" height="113" class="postimg left" style="margin-top: 0px; margin-right: 10px; margin-bottom: 0.75em; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(179, 179, 179); border-right-color: rgb(179, 179, 179); border-bottom-color: rgb(179, 179, 179); border-left-color: rgb(179, 179, 179); background-color: rgb(255, 255, 255); background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; float: left; clear: left; background-position: initial initial; " /&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;There's a button on the menu to the left that says "CreateNewTiddler." Click it. On the right, you'll see a new card appear. Double-click it, enter a title — for now, call it Lists — and type in some text. When you're finished, click "done" or just hit Ctrl-Enter. Your tiddler's finished now. But it's not saved permanently yet. To do so, click "save changes" on the menu. Your first time it will trigger a Firefox warning telling you that the Javascript wants to save something on your local hard drive. Click the "Allow" button and check off "Remember this decision" so you don't get asked every time. You're good to go now, and next time you load up GTDTW your new tiddler will show up in the system.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;&lt;em style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;Note: If you've never done much with wikis before, the formatting involved can seem daunting at first. GTDTW syntax is a simplified version of the highly evolved app that runs &lt;a href="http://en.wikipedia.org/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;Wikipedia&lt;/a&gt;, but it does take getting used to. Bear with me; after a little practice it becomes automatic.&lt;/em&gt;&lt;/p&gt;&lt;h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 1.08em; font-family: Helvetica, Arial, sans-serif; vertical-align: baseline; font-weight: bold; "&gt;Building your GTDTiddlyWiki&lt;/h4&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;You've probably evolved a number of organizational methods of your own that fit your own work style. You're probably going to want to edit the menu to reflect your own process. To do that, click on the "MainMenu" button in the menu. It pops up a tiddler. That's right — the menu itself lives on a tiddler, and you can edit it just like any other card. Click the yellow "edit" button on the MainMenu tiddler. You'll see a number of entries in brackets. Add a new one: type "[[Lists]]" and close the card. Now, over on the left, you should see the item appear in the menu. Click the menu item Lists and the new card you made earlier should appear. Snazzy.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;You might want to call it something more descriptive than that. I have one called "Ideas" that I use to reference other cards containing ideas for articles, projects, etc. Here's how to link to other cards from within a tiddler:&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;Say you're going on vacation and you need to remember to bring everything with you. That would be a new list, so you want it to be referenced from your "Lists" card.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;Open up "Lists" from the menu, or if you already have it open, just double-click it to edit the card. On it, you have whatever you typed earlier. Now, type "VacationList" and close the tiddler. It's important that you make it one single word with two capitals ("camel case"). That's a WikiWord, and it's how wiki's indicate links to other pages. Alternatively, you can just enclose the word in double brackets like we did above.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;You'll see that VacationList link is on there, and it's in italics. The italics mean that the tiddler hasn't been created yet. Click that link and it'll create a new tiddler called VacationList. You can edit that tiddler to indicate everything you need to bring with you. You can make it a bulleted list by typing an asterisk ahead of each word.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;If you want, just paste the following text into your new card:&lt;/p&gt;&lt;blockquote style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; font-family: inherit; vertical-align: baseline; background-color: rgb(231, 237, 207); border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(155, 163, 121); border-right-color: rgb(155, 163, 121); border-bottom-color: rgb(155, 163, 121); border-left-color: rgb(155, 163, 121); color: rgb(51, 51, 51); line-height: 1.6em; "&gt;!Packing&lt;br /&gt;*Into Suitcase&lt;br /&gt;**Scarf&lt;br /&gt;**Gloves&lt;br /&gt;**iPod&lt;br /&gt;&lt;br /&gt;!Shopping&lt;br /&gt;*Sporting Goods Store&lt;br /&gt;**New Boots&lt;br /&gt;**Trail Mix&lt;br /&gt;**Pocket Heaters&lt;/blockquote&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;When you click "Done," here's what it should look like:&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;&lt;img alt="GTDScreenshot4.jpg" src="http://www.lifehacker.com/assets/resources/2006/10/GTDScreenshot4.jpg" width="200" height="285" class="postimg center" style="margin-top: 2px; margin-right: auto; margin-bottom: 1em; margin-left: auto; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; float: none; display: block; clear: both; background-position: initial initial; " /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;Here's a tip for things like shopping or packing lists you might print out to index cards: If you use a double asterisk, it'll result in an empty circle instead of a solid bullet. That way, when you finish each item on the list, just fill in the corresponding circle. Make sure to use a sharp number 2 pencil! That and numerous other tips are on the FormattingInstructions menu item.&lt;/p&gt;&lt;h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 1.08em; font-family: Helvetica, Arial, sans-serif; vertical-align: baseline; font-weight: bold; "&gt;Configuring GTDTiddlyWiki&lt;/h4&gt;&lt;img alt="GTDScreenshot3.jpg" src="http://www.lifehacker.com/assets/resources/2006/10/GTDScreenshot3.jpg" width="235" height="334" class="postimg right" style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 10px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; text-align: right; float: right; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(179, 179, 179); border-right-color: rgb(179, 179, 179); border-bottom-color: rgb(179, 179, 179); border-left-color: rgb(179, 179, 179); background-color: rgb(255, 255, 255); clear: right; " /&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;There are a few little usability issues with GTDTW, but they're easy to get around. Firstly, you should go into "options" on the menu and click "AutoSave." I also uncheck "EnableAnimations," because sometimes the animations can result in slowness, especially if you're running from remote over X or through something like VMWare.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;The reason AutoSave is so important is because GTDTW lives in Firefox. More specifically, it lives in a Firefox tab. It's real easy to forget and start up multiple instances of GTDTW, making you run into version control issues. You also might just accidentally close the tab GTDTW is on, and even though it'll ask you to confirm, you don't want to be adding a lot of cards to the system, switch to another tab and forget to save it.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;In Options, you'll also notice a checkbox labeled "Save Backup." That button is the reason why you don't want to throw GTDTW onto your desktop. It saves incremental backups every time you make a change, each one in its own new file. This is nice in case you make a mistake or need to revert, but it can result in clutter that you don't really need, so you want to place GTDTW in its own separate folder. Once your GTDTW file grows to a few megs or so, you'll also want to go into its folder and clear out some of the older backup files occasionally to save disk space, because it can add up.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;When I want to back up my GTDTW, I just send it to a Gmail account I've set up for handling backups. I have a Linux cron job that sends it up there every day. That way, you keep running incremental backups of your work over time. It's not good to use Gmail as a primary file storage, but it's great for backups like this because it keeps everything nicely organized by date. You could also just use &lt;a href="http://www.lifehacker.com/software/gmail/send-a-webpage-with-gmailthis-128451.php" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;your "Gmail This" bookmarklet&lt;/a&gt; and add your saved GTDTW file as an attachment. Here's a &lt;a href="http://www.lifehacker.com/software/email/geek-to-live-automatically-email-yourself-file-backups-168156.php" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;previous Lifehacker feature on emailing yourself backups on Windows.&lt;/a&gt;&lt;/p&gt;&lt;h4 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 1.08em; font-family: Helvetica, Arial, sans-serif; vertical-align: baseline; font-weight: bold; "&gt;External links to your other capture tools&lt;/h4&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;For a while, I was adding everything under the sun into GTDTW. Now, not so much. The file will get big, bloated and unwieldy. For a while, I was linking to files on my local hard drive (see the LinktoFolders tiddler under FormattingInstructions), but that's unwieldy too if you move from computer to computer.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;Better to link to your &lt;a href="http://www.lifehacker.com/software/google-notebook/clip-and-collect-the-web-with-google-notebook-174096.php" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;Google Notebooks&lt;/a&gt; and store information there. Just add an external link to a tiddler like so:&lt;code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: Courier, fixed; vertical-align: baseline; "&gt;[[MyNotebook|http://www.google.com/notebook/]]&lt;/code&gt;. If you're logged into Google Notebook, it'll bring up your full page view. In Firefox, you can just middle-click the link and it will open in a new tab.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;Ready to print something to notecards? Just hit "Print" from your browser and the tiddlers you have open will print just as nice as could be.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;You'll find that your methods for using GTDTW will evolve over time. For a while, I was using GTDTW for my monthly planner. Now, under my "Agenda" menu item, I have a link to my Google calendar. You guessed it— it's just the same as above, except the link looks like this: &lt;code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: Courier, fixed; vertical-align: baseline; "&gt;[[http://www.google.com/calendar/]]&lt;/code&gt;.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;GTDTW is a great tool for research, organizing different clippings, images and whatnot into an format that's easy to navigate and search. In fact, you might want to save Google searches to look at later. Just link to them:&lt;code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: Courier, fixed; vertical-align: baseline; "&gt;[[Lifehacker|http://www.google.com/search?q=lifehacker]]&lt;/code&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;I could go on for probably twenty more pages about all the ways I've used GTDTW. I'm not even touching on how to use tags, or the search utility, or the full-featured regular expression searching that it offers.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;GTDTiddlyWiki took getting used to, but now I use it every day. But in its customizability lies a pitfall: it has the potential to be an incredible distraction and time-waster. Don't just play with it like a new toy and then discard it. Work up a system and stick with it for a while, actually use it. Then, after you've integrated it into your workflow, start refactoring: look at the way you're using it and figure out how you can streamline your process. That's how you get &lt;a href="http://www.lifehacker.com/software/kaizen/practice-your-personal-kaizen-207029.php" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;continual improvement over time&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;For more ideas of what you can do with these great apps, check &lt;a href="http://tiddlywiki.com/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; color: rgb(120, 110, 41); border-bottom-style: initial; border-bottom-color: initial; text-decoration: none; "&gt;tiddlywiki.com&lt;/a&gt;. Also, thank the developers. They deserve it.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; "&gt;&lt;img src="http://www.lifehacker.com/assets/resources/2006/10/GTDTagline.jpg" class="postimg center" width="534" height="147" style="margin-top: 2px; margin-right: auto; margin-bottom: 1em; margin-left: auto; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 15px; font-family: inherit; vertical-align: baseline; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(204, 204, 204); border-right-color: rgb(204, 204, 204); border-bottom-color: rgb(204, 204, 204); border-left-color: rgb(204, 204, 204); background-color: rgb(255, 255, 255); background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; float: none; display: block; clear: both; background-position: initial initial; " /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div id="post-supplement" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 12px; font-family: inherit; vertical-align: baseline; "&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; line-height: normal; text-transform: uppercase;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-6659721790103885306?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/6659721790103885306/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=6659721790103885306' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6659721790103885306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6659721790103885306'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/get-organized-with-gtdtiddlywiki.html' title='Get organized with GTDTiddlyWiki'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-3242127575877354729</id><published>2009-05-15T11:06:00.001+08:00</published><updated>2009-05-15T11:06:59.118+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google-chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><category scheme='http://www.blogger.com/atom/ns#' term='adblock'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>4 Free Proxies To Block Ads in Google Chrome (or any browser)</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 13px; color: rgb(34, 34, 34); line-height: 19px; "&gt;&lt;h2 class="posttitle" style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.2em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Helvetica, Arial, 'Lucida Grande', sans-serif; color: rgb(17, 17, 17); clear: both; font-size: 2em; font: normal normal normal 2.3em/normal Georgia, 'Times New Roman', serif; font-weight: normal; line-height: 1.1em; letter-spacing: -1px; width: 500px; "&gt;&lt;a href="http://www.downloadsquad.com/2008/09/08/4-free-proxies-to-block-ads-in-google-chrome-or-any-browser/" title="Read the rest of this post" style="color: rgb(17, 17, 17); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;span id="ppt1307416"&gt;4 Free Proxies To Block Ads in Google Chrome (or any browser)&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p class="byline" style="margin-top: 1em; margin-right: 0px; margin-bottom: 0.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; color: rgb(153, 153, 153); font: italic normal normal 1em/normal Georgia; "&gt;&lt;span class="swipe" style="float: left; margin-right: 0.5em; display: block; height: 16px; width: 16px; overflow-x: hidden; overflow-y: hidden; background-image: url(http://www.blogsmithmedia.com/www.downloadsquad.com/media/bars.gif); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; background-position: initial initial; "&gt;&lt;/span&gt;&lt;em style="font-style: italic; "&gt;by&lt;/em&gt; &lt;strong style="font-weight: normal; "&gt;&lt;a href="http://www.downloadsquad.com/bloggers/lee-mathews/" style="color: rgb(17, 17, 17); text-decoration: none; outline-style: none; outline-width: initial; outline-color: initial; "&gt;Lee Mathews&lt;/a&gt;&lt;/strong&gt; Sep 8th 2008&lt;/p&gt;&lt;div class="postbody" style="padding-top: 1em; "&gt;&lt;div style="text-align: center; "&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;img hspace="4" height="69" width="400" vspace="4" border="0" src="http://www.blogcdn.com/www.downloadsquad.com/media/2008/09/gbogorgblyer-rcyhbryogmber08.jpg" alt="" style="background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: rgb(255, 255, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(221, 221, 221); border-right-color: rgb(221, 221, 221); border-bottom-color: rgb(221, 221, 221); border-left-color: rgb(221, 221, 221); margin-top: 0px; margin-right: 15px; margin-bottom: 10px; margin-left: 10px; background-position: initial initial; " /&gt;&lt;br /&gt;&lt;/div&gt;So you've tested &lt;a href="http://www.downloadsquad.com/tag/Google-Chrome/" style="color: rgb(223, 139, 34); text-decoration: underline; outline-style: none; outline-width: initial; outline-color: initial; "&gt;Google Chrome&lt;/a&gt; and decided that you like it. You say you'd switch, but there's no adblocker? Fortunately for you, there are several free, tiny filtering proxy applications available that can do the job. &lt;br /&gt;&lt;br /&gt;The best part is, they'll help block ads in any browser - including Chrome.&lt;br /&gt;&lt;br /&gt;Before I get into a list, it's important to know that several of these apps haven't been updated in ages. However, content filtering is a pretty straightforward operation, so even the old ones work just fine - and you can always tweak the blocking rules yourself.&lt;br /&gt;&lt;a href="http://www.cyberguard.com/products/webwasher/webwasher_products/classic/" style="color: rgb(223, 139, 34); text-decoration: underline; outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;br /&gt;CyberGuard WebWasher Classic&lt;/a&gt; is another great option. It's small, fast, and very customizable. It's got additional capabilities to block popups, scripts, referrers, cookies, and prefixes. New filters are incredibly easy to set up, and there's no noticeable lag in load times. Of the apps I tested, WebWasher was my favorite.&lt;br /&gt;&lt;a href="http://www.softforyou.com/irt.php" style="color: rgb(223, 139, 34); text-decoration: underline; outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.proxomitron.info/index.html" style="color: rgb(223, 139, 34); text-decoration: underline; outline-style: none; outline-width: initial; outline-color: initial; "&gt;Proxomitron&lt;/a&gt; has a god awful GUI, but it works well enough that its appearance can be overlooked (you can create your own bitmaps if you really hate it). It offers extremely flexible bloxing rules, and the default set is extrmely effective. Blocked ads are replaced with [red text in brackets], and pages load times weren't adversely affected.&lt;div id="continued"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.softforyou.com/irt.php" style="color: rgb(223, 139, 34); text-decoration: underline; outline-style: none; outline-width: initial; outline-color: initial; "&gt;iReject Trash&lt;/a&gt; is a tiny download (200k) and works extremely well. Its log view also gives you an interesting insight into the pages you're visiting. CNET.com, for example, had 33 items blocked. Out-of-the-box the blocking was very good, and the rules are fully customizable. You can block by host, pattern, or image dimensions. Page load times were a bit slower on certain sites.&lt;br /&gt;&lt;a href="http://lifehacker.com/5046529/how-to-block-ads-in-google-chrome" style="color: rgb(223, 139, 34); text-decoration: underline; outline-style: none; outline-width: initial; outline-color: initial; "&gt;&lt;br /&gt;Lifehacker suggests Privoxy&lt;/a&gt; as an option (via &lt;a href="http://www.geekzone.co.nz/forums.asp?forumid=50&amp;amp;topicid=25916" style="color: rgb(223, 139, 34); text-decoration: underline; outline-style: none; outline-width: initial; outline-color: initial; "&gt;GeekZone NZ&lt;/a&gt;). Privoxy is more low-fi: all your configuration tweaks are done by editing text files. It is, however, very easy on processor usage and it also does a very good job with no tweaking. I didn't notice any difference in page load times with Privoxy.&lt;br /&gt;&lt;br /&gt;There are tons of other options for blocking ads (just check the &lt;a href="http://www.google.com/Top/Computers/Internet/Proxying_and_Filtering/Content_Filtering/Advertising/" style="color: rgb(223, 139, 34); text-decoration: underline; outline-style: none; outline-width: initial; outline-color: initial; "&gt;Google Directory&lt;/a&gt;), so don't give up on Chrome just because there's no AdBlock. Grab one of these apps, and give it another try - then tell us how it went!&lt;/div&gt;&lt;/div&gt;&lt;div class="postmeta"&gt;&lt;p class="posttags" style="margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: left; color: rgb(153, 153, 153); font-size: 11px; "&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-3242127575877354729?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/3242127575877354729/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=3242127575877354729' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3242127575877354729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3242127575877354729'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/4-free-proxies-to-block-ads-in-google.html' title='4 Free Proxies To Block Ads in Google Chrome (or any browser)'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-1746719279617720077</id><published>2009-05-14T22:11:00.000+08:00</published><updated>2009-05-14T22:12:57.201+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='da eb 4c c62'/><title type='text'>WINRAR KEY 注册码</title><content type='html'>选择对应的代码复制到TXT文本文档中，命名为rarreg.key放入WinRAR 的安装目录中的文件中（如果没有就自己创建一个）！！&lt;br /&gt;呃，多嘴说一句，使用方法不是双击 RarReg.key 导入注册表&lt;br /&gt;而是把 RarReg.key 放到 WinRAR 的安装目录&lt;br /&gt;WinRAR 的安装目录通常在 C:\Program Files\WinRAR&lt;br /&gt;&lt;br /&gt;3.6 beta8版以下:&lt;br /&gt;&lt;br /&gt;RAR registration data&lt;br /&gt;Alexander Aymanov&lt;br /&gt;Single PC usage license&lt;br /&gt;UID=dc1d9fdb26f9be064d83&lt;br /&gt;64122122504d83d04ee243231738b88600fb267f1d3b9632421295&lt;br /&gt;d1048b98780395138be06035c6ab9048e2c5c62f0238f183d28519&lt;br /&gt;aa87488bf38f5b634cf28190bdf438ac593b1857cdb55a7fcb0eb0&lt;br /&gt;c3e4c2736090b3dfa45384e08e9de05c58609e0915bfdc561003a6&lt;br /&gt;755c95e82155892c0f36e7ff4b3d62f55230e8ad51b6756d092d0b&lt;br /&gt;89e5c480d3449cc0c7d9ab1d3d4abb32baf07ebabe0e145e608494&lt;br /&gt;e628198aaef1e665f9d63f719cb57ef19f3443f31a830478060233&lt;br /&gt;&lt;br /&gt;3.71版以下：&lt;br /&gt;RAR registration data&lt;br /&gt;Ian Gledhill&lt;br /&gt;Single PC usage license&lt;br /&gt;UID=1b80823684224d9b748a&lt;br /&gt;6412212250748a81108382cda7d3d039b93ea05369c1b3222bcc93&lt;br /&gt;248e0a5c901e7a89b5946035c6ab9048e2c5c62f0238f183d28519&lt;br /&gt;aa87488bf38f5b634cf28190bdf438ac593b1857cdb55a7fcb0eb0&lt;br /&gt;c3e4c2736090b3dfa45384e08e9de05c58604100fe88f402153c05&lt;br /&gt;aa6e9cf44271379afcc502a027ec9ef029e9691f1d734d58eb8016&lt;br /&gt;4dfef1ff926eee74128b50442ab561e9abfdd6b8490e36e46004bb&lt;br /&gt;71874b07a0fb27a6c5d662140fae567747083ae2ed070249382990&lt;br /&gt;&lt;br /&gt;3.80版以下:&lt;br /&gt;&lt;br /&gt;RAR registration data&lt;br /&gt;Database Administrators&lt;br /&gt;5 PC usage license&lt;br /&gt;UID=54d582e921e445f1bfe8&lt;br /&gt;6412212250bfe8e73e20bdb947f60ef0da9624150bcf8668412c68&lt;br /&gt;84affda559742bbb686d6071302587655a7ba28d516e17834b7616&lt;br /&gt;47cd79a293eb4c0e4fbf5e9f967e6ed5b28a02418d0ab2549fc4da&lt;br /&gt;19e4644f2345190bf26ff7bcd0c819f12560b57cf28adc164a00c6&lt;br /&gt;3174fcbb69509912e7c7c4793779b941901c6c793b7319cc395ee0&lt;br /&gt;8bddb923fa08fc20019b59d0b246e0ac325d2e5854d4f97a602fc0&lt;br /&gt;a4357b8f857cfb717545410ecad088fb28a2a3cf0dff2102863273&lt;br /&gt;&lt;br /&gt;3.60 beta8 :&lt;br /&gt;&lt;br /&gt;RAR registration data&lt;br /&gt;vncodered&lt;br /&gt;Single PC usage license&lt;br /&gt;UID=1779147d103f2fdbd317&lt;br /&gt;6412212250d317d5ea5a69ea5936c8a67dd60fc5eb0e3b230a0cce&lt;br /&gt;d95d6cc8c4b5248e40986035c6ab9048e2c5c62f0238f183d28519&lt;br /&gt;aa87488bf38f5b634cf28190bdf438ac593b1857cdb55a7fcb0eb0&lt;br /&gt;c3e4c2736090b3dfa45384e08e9de05c5860266bd3d416f192e71b&lt;br /&gt;c2ec1d27fd4b058c495a2bf7e1ad7bbddbbee27df7988217761f42&lt;br /&gt;45d28472a7591f8faaf3e78c78f9f97112fcd8a662a5401c60d21a&lt;br /&gt;2e9f208d4dd673099d78613e7a1bc45bac1f6d65a10a1775209829&lt;br /&gt;&lt;br /&gt;WinRAR 3.8 key!注册文件（共2个，任选一个都行，&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;请复制另存为文本文件，命名为以下名称 rarreg。key，并保存在winrar文件夹里。}&lt;br /&gt;&lt;br /&gt;WinRAR v3.80 Final working key&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;注册码1&lt;br /&gt;=================================================&lt;br /&gt;&lt;br /&gt;RAR registration data&lt;br /&gt;Federal Agency for Education&lt;br /&gt;1000000 PC usage license&lt;br /&gt;UID=b621cca9a84bc5deffbf&lt;br /&gt;6412612250ffbf533df6db2dfe8ccc3aae5362c06d54762105357d&lt;br /&gt;5e3b1489e751c76bf6e0640001014be50a52303fed29664b074145&lt;br /&gt;7e567d04159ad8defc3fb6edf32831fd1966f72c21c0c53c02fbbb&lt;br /&gt;2f91cfca671d9c482b11b8ac3281cb21378e85606494da349941fa&lt;br /&gt;e9ee328f12dc73e90b6356b921fbfb8522d6562a6a4b97e8ef6c9f&lt;br /&gt;fb866be1e3826b5aa126a4d2bfe9336ad63003fc0e71c307fc2c60&lt;br /&gt;64416495d4c55a0cc82d402110498da970812063934815d81470829275&lt;br /&gt;&lt;br /&gt;=================================================&lt;br /&gt;&lt;br /&gt;RAR registration data&lt;br /&gt;Database Administrators&lt;br /&gt;5 PC usage license&lt;br /&gt;UID=54d582e921e445f1bfe8&lt;br /&gt;6412212250bfe8e73e20bdb947f60ef0da9624150bcf8668412c68&lt;br /&gt;84affda559742bbb686d6071302587655a7ba28d516e17834b7616&lt;br /&gt;47cd79a293eb4c0e4fbf5e9f967e6ed5b28a02418d0ab2549fc4da&lt;br /&gt;19e4644f2345190bf26ff7bcd0c819f12560b57cf28adc164a00c6&lt;br /&gt;3174fcbb69509912e7c7c4793779b941901c6c793b7319cc395ee0&lt;br /&gt;8bddb923fa08fc20019b59d0b246e0ac325d2e5854d4f97a602fc0&lt;br /&gt;a4357b8f857cfb717545410ecad088fb28a2a3cf0dff2102863273&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-1746719279617720077?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/1746719279617720077/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=1746719279617720077' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/1746719279617720077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/1746719279617720077'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/winrar-key.html' title='WINRAR KEY 注册码'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-2296104518765916925</id><published>2009-05-13T18:58:00.000+08:00</published><updated>2009-05-13T18:59:24.891+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='程序 SUDOKU'/><title type='text'>SUDOKU破解与生成程序1.0</title><content type='html'>不多说了，增加了第三逻辑和对可能情况的遍历（也就是当不能用逻辑区分的时候的暴力破解）。&lt;br /&gt; http://lostabaddon.spaces.live.com/cns!EB06676D0B60BFBD!1986.entry&lt;br /&gt;FrmSudoku.FRM:&lt;br /&gt;Option Explicit&lt;br /&gt;Dim SUDOKU(9, 9, 9) As Integer&lt;br /&gt;Dim SudokuSolution As New ClsSudoku&lt;br /&gt;Private Sub CmdClear_Click()&lt;br /&gt;Dim I As Integer, J As Integer, K As Integer&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    For J = 1 To 9&lt;br /&gt;        For K = 0 To 9&lt;br /&gt;            SUDOKU(I, J, K) = 0&lt;br /&gt;        Next K&lt;br /&gt;    Next J&lt;br /&gt;Next I&lt;br /&gt;ShowSUDOKU&lt;br /&gt;End Sub&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;Dim I As Integer, J As Integer, X As Integer, Y As Integer&lt;br /&gt;Dim T As Integer&lt;br /&gt;Dim P As Single&lt;br /&gt;P = (Me.ScaleWidth - 3700) / 2&lt;br /&gt;TxtInput(0).Visible = False&lt;br /&gt;For I = 1 To 3&lt;br /&gt;    For J = 1 To 3&lt;br /&gt;        For X = 1 To 3&lt;br /&gt;            For Y = 1 To 3&lt;br /&gt;                T = ((I - 1) * 3 + (J - 1)) * 9 + ((X - 1) * 3 + Y)&lt;br /&gt;                Load TxtInput(T)&lt;br /&gt;                TxtInput(T).Left = ((I - 1) * 3 + X - 1) * 400 + (I - 1) * 50 + P&lt;br /&gt;                TxtInput(T).Top = ((J - 1) * 3 + Y - 1) * 400 + (J - 1) * 50&lt;br /&gt;                TxtInput(T).Visible = True&lt;br /&gt;                TxtInput(T) = ""&lt;br /&gt;            Next Y&lt;br /&gt;        Next X&lt;br /&gt;    Next J&lt;br /&gt;Next I&lt;br /&gt;CmdStart.Top = Me.ScaleHeight - CmdStart.Height&lt;br /&gt;CmdGenerate.Top = Me.ScaleHeight - CmdGenerate.Height&lt;br /&gt;CmdStart.Left = (Me.ScaleWidth - CmdStart.Width - CmdGenerate.Width) / 2&lt;br /&gt;CmdGenerate.Left = (Me.ScaleWidth - CmdStart.Width - CmdGenerate.Width) / 2 + CmdStart.Width&lt;br /&gt;End Sub&lt;br /&gt;Private Sub CmdStart_Click()&lt;br /&gt;ReadSUDOKU&lt;br /&gt;If SudokuSolution.Solution(SUDOKU) Then&lt;br /&gt;    ShowSUDOKU&lt;br /&gt;End If&lt;br /&gt;ShowSUDOKU&lt;br /&gt;End Sub&lt;br /&gt;Private Sub CmdGenerate_Click()&lt;br /&gt;SudokuSolution.Build SUDOKU&lt;br /&gt;ShowSUDOKU&lt;br /&gt;Me.Caption = "Sudoku Solution"&lt;br /&gt;End Sub&lt;br /&gt;Private Sub TxtInput_DblClick(Index As Integer)&lt;br /&gt;Dim A As Integer&lt;br /&gt;A = Int((Index - 1) / 9) + 1&lt;br /&gt;Dim X As Integer, Y As Integer&lt;br /&gt;X = A - Int(A / 3) * 3&lt;br /&gt;If X = 0 Then X = 3&lt;br /&gt;Y = Int((A - 1) / 3 + 1)&lt;br /&gt;A = Index - ((Y - 1) * 3 + X - 1) * 9&lt;br /&gt;Dim I As Integer, J As Integer&lt;br /&gt;I = A - Int(A / 3) * 3&lt;br /&gt;If I = 0 Then I = 3&lt;br /&gt;J = Int((A - 1) / 3 + 1)&lt;br /&gt;MsgBox Str((X - 1) * 3 + I) &amp; "," &amp; Str((Y - 1) * 3 + J)&lt;br /&gt;End Sub&lt;br /&gt;'辅助区&lt;br /&gt;Private Sub ReadSUDOKU()&lt;br /&gt;Dim I As Integer, J As Integer, X As Integer, Y As Integer&lt;br /&gt;Dim T As Integer, Q As Integer, K As Integer&lt;br /&gt;For I = 1 To 3&lt;br /&gt;    For J = 1 To 3&lt;br /&gt;        For X = 1 To 3&lt;br /&gt;            For Y = 1 To 3&lt;br /&gt;                T = ((I - 1) * 3 + (J - 1)) * 9 + ((X - 1) * 3 + Y)&lt;br /&gt;                Q = Val(TxtInput(T))&lt;br /&gt;                If Q &gt;= 0 Then&lt;br /&gt;                    SUDOKU((I - 1) * 3 + X, (J - 1) * 3 + Y, 0) = Q&lt;br /&gt;                End If&lt;br /&gt;                For K = 1 To 9&lt;br /&gt;                    SUDOKU((I - 1) * 3 + X, (J - 1) * 3 + Y, K) = 0&lt;br /&gt;                Next K&lt;br /&gt;            Next Y&lt;br /&gt;        Next X&lt;br /&gt;    Next J&lt;br /&gt;Next I&lt;br /&gt;End Sub&lt;br /&gt;Private Sub ShowSUDOKU()&lt;br /&gt;Dim I As Integer, J As Integer, X As Integer, Y As Integer&lt;br /&gt;Dim T As Integer, Q As Integer&lt;br /&gt;For I = 1 To 3&lt;br /&gt;    For J = 1 To 3&lt;br /&gt;        For X = 1 To 3&lt;br /&gt;            For Y = 1 To 3&lt;br /&gt;                T = ((I - 1) * 3 + (J - 1)) * 9 + ((X - 1) * 3 + Y)&lt;br /&gt;                Q = SUDOKU((I - 1) * 3 + X, (J - 1) * 3 + Y, 0)&lt;br /&gt;                If Q &gt; 0 Then&lt;br /&gt;                    TxtInput(T).Text = Q&lt;br /&gt;                Else&lt;br /&gt;                    TxtInput(T).Text = ""&lt;br /&gt;                End If&lt;br /&gt;            Next Y&lt;br /&gt;        Next X&lt;br /&gt;    Next J&lt;br /&gt;Next I&lt;br /&gt;End Sub&lt;br /&gt;'辅助区结束&lt;br /&gt;ClsSudoku.CLS:&lt;br /&gt;Option Explicit&lt;br /&gt;Dim SUDOKU(9, 9, 9) As Integer&lt;br /&gt;'功能区&lt;br /&gt;Public Function Solution(ByRef S() As Integer) As Boolean&lt;br /&gt;Dim I As Integer, J As Integer, T() As Integer, K As Integer&lt;br /&gt;Dim IsOK As Boolean&lt;br /&gt;ReDim T(0)&lt;br /&gt;GetSUDOKU S&lt;br /&gt;Solution = False&lt;br /&gt;If Check Then&lt;br /&gt;    If Not CheckEmpty Then&lt;br /&gt;        Exit Function&lt;br /&gt;    End If&lt;br /&gt;Else&lt;br /&gt;    Exit Function&lt;br /&gt;End If&lt;br /&gt;IsOK = True&lt;br /&gt;Do While IsOK&lt;br /&gt;    IsOK = Deal Or ThirdLogic&lt;br /&gt;Loop&lt;br /&gt;Solution = IsFinished&lt;br /&gt;If Solution Then&lt;br /&gt;    BackSUDOKU S&lt;br /&gt;Else&lt;br /&gt;    Find I, J, T&lt;br /&gt;    If UBound(T) = 0 Then Solution = False: Exit Function&lt;br /&gt;    For K = 1 To UBound(T)&lt;br /&gt;        If Try(I, J, T(K)) Then BackSUDOKU S: Solution = True: Exit For&lt;br /&gt;    Next K&lt;br /&gt;End If&lt;br /&gt;End Function&lt;br /&gt;Public Sub Build(ByRef S() As Integer)&lt;br /&gt;'初始化最原始SUDOKU&lt;br /&gt;Dim I As Integer&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    SUDOKU(I, 1, 0) = I&lt;br /&gt;Next I&lt;br /&gt;For I = 1 To 3&lt;br /&gt;    SUDOKU(6 + I, 2, 0) = I&lt;br /&gt;    SUDOKU(I, 3, 0) = 6 + I&lt;br /&gt;Next I&lt;br /&gt;For I = 1 To 6&lt;br /&gt;    SUDOKU(I, 2, 0) = 3 + I&lt;br /&gt;    SUDOKU(3 + I, 3, 0) = I&lt;br /&gt;Next I&lt;br /&gt;For I = 1 To 8&lt;br /&gt;    SUDOKU(I, 4, 0) = I + 1&lt;br /&gt;    SUDOKU(I + 1, 7, 0) = I&lt;br /&gt;Next I&lt;br /&gt;SUDOKU(3, 4, 0) = 1&lt;br /&gt;SUDOKU(6, 4, 0) = 4&lt;br /&gt;SUDOKU(9, 4, 0) = 7&lt;br /&gt;SUDOKU(1, 7, 0) = 3&lt;br /&gt;SUDOKU(4, 7, 0) = 6&lt;br /&gt;SUDOKU(7, 7, 0) = 9&lt;br /&gt;For I = 1 To 5&lt;br /&gt;    SUDOKU(I, 5, 0) = I + 4&lt;br /&gt;    SUDOKU(I + 1, 8, 0) = I + 3&lt;br /&gt;Next I&lt;br /&gt;SUDOKU(6, 5, 0) = 7&lt;br /&gt;SUDOKU(7, 5, 0) = 2&lt;br /&gt;SUDOKU(8, 5, 0) = 3&lt;br /&gt;SUDOKU(9, 5, 0) = 1&lt;br /&gt;SUDOKU(3, 5, 0) = 4&lt;br /&gt;SUDOKU(1, 8, 0) = 6&lt;br /&gt;SUDOKU(4, 8, 0) = 9&lt;br /&gt;SUDOKU(7, 8, 0) = 3&lt;br /&gt;SUDOKU(8, 8, 0) = 1&lt;br /&gt;SUDOKU(9, 8, 0) = 2&lt;br /&gt;For I = 1 To 5&lt;br /&gt;    SUDOKU(I + 3, 6, 0) = I + 1&lt;br /&gt;    SUDOKU(I + 4, 9, 0) = I&lt;br /&gt;Next I&lt;br /&gt;SUDOKU(1, 6, 0) = 8&lt;br /&gt;SUDOKU(2, 6, 0) = 9&lt;br /&gt;SUDOKU(3, 6, 0) = 7&lt;br /&gt;SUDOKU(6, 6, 0) = 1&lt;br /&gt;SUDOKU(9, 6, 0) = 4&lt;br /&gt;SUDOKU(1, 9, 0) = 9&lt;br /&gt;SUDOKU(2, 9, 0) = 7&lt;br /&gt;SUDOKU(3, 9, 0) = 8&lt;br /&gt;SUDOKU(4, 9, 0) = 3&lt;br /&gt;SUDOKU(7, 9, 0) = 6&lt;br /&gt;'SUDOKU混排&lt;br /&gt;I = 5 + Int(Rnd() * 10)&lt;br /&gt;Do While I &gt; 0&lt;br /&gt;    If Rnd() &gt; 0.5 Then&lt;br /&gt;        RowTrans 1 + Int(Rnd() * 3), 1 + Int(Rnd() * 3)&lt;br /&gt;    Else&lt;br /&gt;        ColTrans 1 + Int(Rnd() * 3), 1 + Int(Rnd() * 3)&lt;br /&gt;    End If&lt;br /&gt;    I = I - 1&lt;br /&gt;Loop&lt;br /&gt;For I = 1 To 6&lt;br /&gt;    RowTrans 1 + Int(Rnd() * 3), 1 + Int(Rnd() * 3)&lt;br /&gt;    ColTrans 1 + Int(Rnd() * 3), 1 + Int(Rnd() * 3)&lt;br /&gt;Next I&lt;br /&gt;Cycle&lt;br /&gt;Cover&lt;br /&gt;BackSUDOKU S&lt;br /&gt;End Sub&lt;br /&gt;'功能区结束&lt;br /&gt;'辅助区&lt;br /&gt;Private Function Try(ByVal I As Integer, ByVal J As Integer, ByVal T As Integer) As Boolean&lt;br /&gt;Dim SS(9, 9, 9) As Integer&lt;br /&gt;BackSUDOKU SS&lt;br /&gt;SS(I, J, 0) = T&lt;br /&gt;Dim SSS As New ClsSudoku&lt;br /&gt;Try = SSS.Solution(SS)&lt;br /&gt;If Try Then&lt;br /&gt;    GetSUDOKU SS&lt;br /&gt;End If&lt;br /&gt;End Function&lt;br /&gt;Private Sub Find(ByRef I As Integer, ByRef J As Integer, ByRef T() As Integer)&lt;br /&gt;Dim A As Integer, B As Integer, C As Integer&lt;br /&gt;Dim D As Integer, E As Integer&lt;br /&gt;E = 10&lt;br /&gt;For A = 1 To 9&lt;br /&gt;    For B = 1 To 9&lt;br /&gt;        If SUDOKU(A, B, 0) = 0 Then&lt;br /&gt;            D = 0&lt;br /&gt;            For C = 1 To 9&lt;br /&gt;                If SUDOKU(A, B, C) = 1 Then D = D + 1&lt;br /&gt;            Next C&lt;br /&gt;            If D &lt; E And D &gt; 0 Then&lt;br /&gt;                ReDim T(0)&lt;br /&gt;                For C = 1 To 9&lt;br /&gt;                    If SUDOKU(A, B, C) = 1 Then&lt;br /&gt;                        ReDim Preserve T(UBound(T) + 1)&lt;br /&gt;                        T(UBound(T)) = C&lt;br /&gt;                    End If&lt;br /&gt;                Next C&lt;br /&gt;                I = A&lt;br /&gt;                J = B&lt;br /&gt;            End If&lt;br /&gt;        End If&lt;br /&gt;    Next B&lt;br /&gt;Next A&lt;br /&gt;End Sub&lt;br /&gt;Private Function IsFinished() As Boolean&lt;br /&gt;IsFinished = False&lt;br /&gt;Dim I As Integer&lt;br /&gt;Dim J As Integer&lt;br /&gt;If Not Check Then Exit Function&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    For J = 1 To 9&lt;br /&gt;        If SUDOKU(I, J, 0) = 0 Then Exit Function&lt;br /&gt;    Next J&lt;br /&gt;Next I&lt;br /&gt;IsFinished = True&lt;br /&gt;End Function&lt;br /&gt;Private Function Check() As Boolean&lt;br /&gt;Dim I As Integer, J As Integer, X As Integer, Y As Integer&lt;br /&gt;Dim T As Integer, Q As Integer&lt;br /&gt;Dim P1(9) As Integer, P2(9) As Integer, P3(9) As Integer&lt;br /&gt;Check = True&lt;br /&gt;For I = 1 To 3&lt;br /&gt;    For X = 1 To 3&lt;br /&gt;        For T = 1 To 9&lt;br /&gt;            P1(T) = T&lt;br /&gt;            P2(T) = T&lt;br /&gt;            P3(T) = T&lt;br /&gt;        Next&lt;br /&gt;        For J = 1 To 3&lt;br /&gt;            For Y = 1 To 3&lt;br /&gt;                Q = SUDOKU((I - 1) * 3 + X, (J - 1) * 3 + Y, 0)&lt;br /&gt;                If P1(Q) &gt; 0 Or Q = 0 Then&lt;br /&gt;                    P1(Q) = 0&lt;br /&gt;                Else&lt;br /&gt;                    Check = False&lt;br /&gt;                    Exit Function&lt;br /&gt;                End If&lt;br /&gt;                Q = SUDOKU((J - 1) * 3 + Y, (I - 1) * 3 + X, 0)&lt;br /&gt;                If P2(Q) &gt; 0 Or Q = 0 Then&lt;br /&gt;                    P2(Q) = 0&lt;br /&gt;                Else&lt;br /&gt;                    Check = False&lt;br /&gt;                    Exit Function&lt;br /&gt;                End If&lt;br /&gt;                Q = SUDOKU((I - 1) * 3 + J, (X - 1) * 3 + Y, 0)&lt;br /&gt;                If P3(Q) &gt; 0 Or Q = 0 Then&lt;br /&gt;                    P3(Q) = 0&lt;br /&gt;                Else&lt;br /&gt;                    Check = False&lt;br /&gt;                    Exit Function&lt;br /&gt;                End If&lt;br /&gt;            Next&lt;br /&gt;        Next&lt;br /&gt;    Next&lt;br /&gt;Next&lt;br /&gt;End Function&lt;br /&gt;Private Function CheckEmpty() As Boolean&lt;br /&gt;Dim I As Integer, J As Integer&lt;br /&gt;Dim P As Integer&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    For J = 1 To 9&lt;br /&gt;        P = P + SUDOKU(I, J, 0)&lt;br /&gt;    Next J&lt;br /&gt;Next I&lt;br /&gt;If P = 0 Then&lt;br /&gt;    CheckEmpty = False&lt;br /&gt;Else&lt;br /&gt;    CheckEmpty = True&lt;br /&gt;End If&lt;br /&gt;End Function&lt;br /&gt;Private Sub GetSUDOKU(ByRef S() As Integer)&lt;br /&gt;Dim I As Integer, J As Integer, K As Integer&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    For J = 1 To 9&lt;br /&gt;        SUDOKU(I, J, 0) = S(I, J, 0)&lt;br /&gt;        For K = 1 To 9&lt;br /&gt;            SUDOKU(I, J, K) = 0&lt;br /&gt;        Next K&lt;br /&gt;    Next J&lt;br /&gt;Next I&lt;br /&gt;End Sub&lt;br /&gt;Private Sub BackSUDOKU(ByRef S() As Integer)&lt;br /&gt;Dim I As Integer, J As Integer, K As Integer&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    For J = 1 To 9&lt;br /&gt;        S(I, J, 0) = SUDOKU(I, J, 0)&lt;br /&gt;        For K = 1 To 9&lt;br /&gt;            S(I, J, K) = SUDOKU(I, J, K)&lt;br /&gt;        Next K&lt;br /&gt;    Next J&lt;br /&gt;Next I&lt;br /&gt;End Sub&lt;br /&gt;'辅助区结束&lt;br /&gt;'SUDOKU生成区&lt;br /&gt;Private Sub RowTrans(ByVal SupN As Integer, ByVal SubN As Integer)&lt;br /&gt;Dim I As Integer&lt;br /&gt;Dim J As Integer&lt;br /&gt;Dim K As Integer&lt;br /&gt;Dim R As Integer&lt;br /&gt;Dim S As Integer&lt;br /&gt;Dim A(9) As Integer, B(9) As Integer&lt;br /&gt;I = (SupN - 1) * 3&lt;br /&gt;J = I&lt;br /&gt;Select Case SubN&lt;br /&gt;    Case 1&lt;br /&gt;        I = I + 2&lt;br /&gt;        J = J + 3&lt;br /&gt;    Case 2&lt;br /&gt;        I = I + 1&lt;br /&gt;        J = J + 3&lt;br /&gt;    Case 3&lt;br /&gt;        I = I + 1&lt;br /&gt;        J = J + 2&lt;br /&gt;End Select&lt;br /&gt;For K = 1 To 9&lt;br /&gt;    A(K) = SUDOKU(I, K, 0)&lt;br /&gt;    B(K) = SUDOKU(J, K, 0)&lt;br /&gt;Next K&lt;br /&gt;K = Int(Rnd() * 5) + 1&lt;br /&gt;S = SUDOKU(J, K, 0)&lt;br /&gt;R = SUDOKU(I, K, 0)&lt;br /&gt;A(K) = S&lt;br /&gt;B(K) = R&lt;br /&gt;Do While S &lt;&gt; R&lt;br /&gt;    For K = 1 To 9&lt;br /&gt;        If SUDOKU(I, K, 0) = S Then Exit For&lt;br /&gt;    Next K&lt;br /&gt;    S = SUDOKU(J, K, 0)&lt;br /&gt;    A(K) = SUDOKU(J, K, 0)&lt;br /&gt;    B(K) = SUDOKU(I, K, 0)&lt;br /&gt;Loop&lt;br /&gt;For K = 1 To 9&lt;br /&gt;    SUDOKU(I, K, 0) = A(K)&lt;br /&gt;    SUDOKU(J, K, 0) = B(K)&lt;br /&gt;Next K&lt;br /&gt;End Sub&lt;br /&gt;Private Sub ColTrans(ByVal SupN As Integer, ByVal SubN As Integer)&lt;br /&gt;Dim I As Integer&lt;br /&gt;Dim J As Integer&lt;br /&gt;Dim K As Integer&lt;br /&gt;Dim R As Integer&lt;br /&gt;Dim S As Integer&lt;br /&gt;Dim A(9) As Integer, B(9) As Integer&lt;br /&gt;I = (SupN - 1) * 3&lt;br /&gt;J = I&lt;br /&gt;Select Case SubN&lt;br /&gt;    Case 1&lt;br /&gt;        I = I + 2&lt;br /&gt;        J = J + 3&lt;br /&gt;    Case 2&lt;br /&gt;        I = I + 1&lt;br /&gt;        J = J + 3&lt;br /&gt;    Case 3&lt;br /&gt;        I = I + 1&lt;br /&gt;        J = J + 2&lt;br /&gt;End Select&lt;br /&gt;For K = 1 To 9&lt;br /&gt;    A(K) = SUDOKU(K, I, 0)&lt;br /&gt;    B(K) = SUDOKU(K, J, 0)&lt;br /&gt;Next K&lt;br /&gt;K = Int(Rnd() * 5) + 1&lt;br /&gt;S = SUDOKU(K, J, 0)&lt;br /&gt;R = SUDOKU(K, I, 0)&lt;br /&gt;A(K) = S&lt;br /&gt;B(K) = R&lt;br /&gt;Do While S &lt;&gt; R&lt;br /&gt;    For K = 1 To 9&lt;br /&gt;        If SUDOKU(K, I, 0) = S Then Exit For&lt;br /&gt;    Next K&lt;br /&gt;    S = SUDOKU(K, J, 0)&lt;br /&gt;    A(K) = SUDOKU(K, J, 0)&lt;br /&gt;    B(K) = SUDOKU(K, I, 0)&lt;br /&gt;Loop&lt;br /&gt;For K = 1 To 9&lt;br /&gt;    SUDOKU(K, I, 0) = A(K)&lt;br /&gt;    SUDOKU(K, J, 0) = B(K)&lt;br /&gt;Next K&lt;br /&gt;End Sub&lt;br /&gt;Private Sub Cycle()&lt;br /&gt;Dim T(9) As Integer&lt;br /&gt;Dim I As Integer&lt;br /&gt;Dim J As Integer&lt;br /&gt;Dim K As Integer&lt;br /&gt;Randomize&lt;br /&gt;Do While I &lt; 9&lt;br /&gt;    J = Int(Rnd() * 9) + 1&lt;br /&gt;    If J = 10 Then J = 1&lt;br /&gt;    K = K + J&lt;br /&gt;    If K &gt; 9 Then K = K - 9&lt;br /&gt;    Do While T(K) &gt; 0&lt;br /&gt;        K = K + 1&lt;br /&gt;        If K = 10 Then K = 1&lt;br /&gt;    Loop&lt;br /&gt;    I = I + 1&lt;br /&gt;    T(K) = I&lt;br /&gt;Loop&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    For J = 1 To 9&lt;br /&gt;        SUDOKU(I, J, 0) = T(SUDOKU(I, J, 0))&lt;br /&gt;    Next J&lt;br /&gt;Next I&lt;br /&gt;End Sub&lt;br /&gt;Private Sub Cover()&lt;br /&gt;Dim Total As Integer&lt;br /&gt;Total = 25 + Int((Rnd() + Rnd()) / 2 * 9)&lt;br /&gt;Total = 81 - Total&lt;br /&gt;Dim I As Integer&lt;br /&gt;Dim J As Integer&lt;br /&gt;Do While Total &gt; 0&lt;br /&gt;    I = Int(Rnd() * 9) + 1&lt;br /&gt;    If I = 10 Then I = 1&lt;br /&gt;    J = Int(Rnd() * 9) + 1&lt;br /&gt;    If J = 10 Then J = 9&lt;br /&gt;    If SUDOKU(I, J, 0) &gt; 0 Then&lt;br /&gt;        SUDOKU(I, J, 0) = 0&lt;br /&gt;        Total = Total - 1&lt;br /&gt;    End If&lt;br /&gt;Loop&lt;br /&gt;End Sub&lt;br /&gt;'SUDOKU生成区结束&lt;br /&gt;'排除法分析区&lt;br /&gt;Private Function AnalyzeRestH(ByVal Index As Integer) As Integer()&lt;br /&gt;Dim I As Integer&lt;br /&gt;Dim J As Integer&lt;br /&gt;Dim P() As Integer&lt;br /&gt;ReDim P(0)&lt;br /&gt;J = 1&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    If SUDOKU(Index, I, 0) &gt; 0 Then&lt;br /&gt;        ReDim Preserve P(J)&lt;br /&gt;        P(J) = SUDOKU(Index, I, 0)&lt;br /&gt;        J = J + 1&lt;br /&gt;    End If&lt;br /&gt;Next I&lt;br /&gt;AnalyzeRestH = P&lt;br /&gt;End Function&lt;br /&gt;Private Function AnalyzeRestV(ByVal Index As Integer) As Integer()&lt;br /&gt;Dim I As Integer&lt;br /&gt;Dim J As Integer&lt;br /&gt;Dim P() As Integer&lt;br /&gt;ReDim P(0)&lt;br /&gt;J = 1&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    If SUDOKU(I, Index, 0) &gt; 0 Then&lt;br /&gt;        ReDim Preserve P(J)&lt;br /&gt;        P(J) = SUDOKU(I, Index, 0)&lt;br /&gt;        J = J + 1&lt;br /&gt;    End If&lt;br /&gt;Next I&lt;br /&gt;AnalyzeRestV = P&lt;br /&gt;End Function&lt;br /&gt;Private Function AnalyzeRestR(ByVal Index As Integer) As Integer()&lt;br /&gt;Dim I As Integer&lt;br /&gt;Dim J As Integer&lt;br /&gt;Dim P() As Integer&lt;br /&gt;ReDim P(0)&lt;br /&gt;I = Int(Index / 3)&lt;br /&gt;J = Index - I * 3&lt;br /&gt;If J = 0 Then J = 3: I = I - 1&lt;br /&gt;I = I + 1&lt;br /&gt;Dim T As Integer&lt;br /&gt;T = 1&lt;br /&gt;Dim X As Integer, Y As Integer&lt;br /&gt;For X = 1 To 3&lt;br /&gt;    For Y = 1 To 3&lt;br /&gt;        If SUDOKU((I - 1) * 3 + X, (J - 1) * 3 + Y, 0) &gt; 0 Then&lt;br /&gt;            ReDim Preserve P(T)&lt;br /&gt;            P(T) = SUDOKU((I - 1) * 3 + X, (J - 1) * 3 + Y, 0)&lt;br /&gt;            T = T + 1&lt;br /&gt;        End If&lt;br /&gt;    Next&lt;br /&gt;Next&lt;br /&gt;AnalyzeRestR = P&lt;br /&gt;End Function&lt;br /&gt;Private Function Union(ByRef A() As Integer, B() As Integer, C() As Integer) As Integer()&lt;br /&gt;Dim I As Integer&lt;br /&gt;Dim P(9) As Integer&lt;br /&gt;Dim Q() As Integer&lt;br /&gt;ReDim Q(0)&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    P(I) = 1&lt;br /&gt;Next&lt;br /&gt;For I = 1 To UBound(A)&lt;br /&gt;    P(A(I)) = 0&lt;br /&gt;Next&lt;br /&gt;For I = 1 To UBound(B)&lt;br /&gt;    P(B(I)) = 0&lt;br /&gt;Next&lt;br /&gt;For I = 1 To UBound(C)&lt;br /&gt;    P(C(I)) = 0&lt;br /&gt;Next&lt;br /&gt;Dim J As Integer&lt;br /&gt;J = 1&lt;br /&gt;ReDim Union(0)&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    If P(I) = 1 Then&lt;br /&gt;        ReDim Preserve Q(J)&lt;br /&gt;        Q(J) = I&lt;br /&gt;        J = J + 1&lt;br /&gt;    End If&lt;br /&gt;Next&lt;br /&gt;Union = Q&lt;br /&gt;End Function&lt;br /&gt;'排除法分析区结束&lt;br /&gt;'外推法分析区&lt;br /&gt;Private Function Surround(ByVal Number As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal I As Integer, ByVal J As Integer) As Boolean&lt;br /&gt;Dim A As Integer, B As Integer, C As Integer, D As Integer&lt;br /&gt;Dim M As Integer, N As Integer, P As Integer, Q As Integer&lt;br /&gt;GetBoundary X, M, N&lt;br /&gt;GetBoundary Y, P, Q&lt;br /&gt;GetBoundary I, A, B&lt;br /&gt;GetBoundary J, C, D&lt;br /&gt;Dim Ans As Integer, Res As Integer&lt;br /&gt;Dim T As Integer, R As Integer&lt;br /&gt;Dim Fin As Boolean&lt;br /&gt;Dim TmpA As Integer, TmpB As Integer&lt;br /&gt;Dim Tmp(4) As Integer&lt;br /&gt;T = X * 3 - 3 + A&lt;br /&gt;Fin = False&lt;br /&gt;If SUDOKU(T, Y * 3 - 2, 0) &gt; 0 And SUDOKU(T, Y * 3 - 1, 0) &gt; 0 And SUDOKU(T, Y * 3, 0) &gt; 0 Then&lt;br /&gt;    Ans = 1&lt;br /&gt;Else&lt;br /&gt;    For R = P * 3 - 2 To P * 3&lt;br /&gt;        If SUDOKU(T, R, 0) = Number Then Ans = 1: Fin = True: Exit For&lt;br /&gt;    Next R&lt;br /&gt;    If Not Fin Then&lt;br /&gt;        For R = Q * 3 - 2 To Q * 3&lt;br /&gt;            If SUDOKU(T, R, 0) = Number Then Ans = 1: Fin = True: Exit For&lt;br /&gt;        Next R&lt;br /&gt;    End If&lt;br /&gt;    If Fin Then Tmp(1) = 1&lt;br /&gt;End If&lt;br /&gt;T = X * 3 - 3 + B&lt;br /&gt;Fin = False&lt;br /&gt;If SUDOKU(T, Y * 3 - 2, 0) &gt; 0 And SUDOKU(T, Y * 3 - 1, 0) &gt; 0 And SUDOKU(T, Y * 3, 0) &gt; 0 Then&lt;br /&gt;    Ans = Ans + 1&lt;br /&gt;Else&lt;br /&gt;    For R = P * 3 - 2 To P * 3&lt;br /&gt;        If SUDOKU(T, R, 0) = Number Then Ans = Ans + 1: Fin = True: Exit For&lt;br /&gt;    Next R&lt;br /&gt;    If Not Fin Then&lt;br /&gt;        For R = Q * 3 - 2 To Q * 3&lt;br /&gt;            If SUDOKU(T, R, 0) = Number Then Ans = Ans + 1: Fin = True: Exit For&lt;br /&gt;        Next R&lt;br /&gt;    End If&lt;br /&gt;    If Fin Then Tmp(2) = 1&lt;br /&gt;End If&lt;br /&gt;T = Y * 3 - 3 + C&lt;br /&gt;Fin = False&lt;br /&gt;If SUDOKU(X * 3 - 2, T, 0) &gt; 0 And SUDOKU(X * 3 - 1, T, 0) &gt; 0 And SUDOKU(X * 3, T, 0) &gt; 0 Then&lt;br /&gt;    Res = 1&lt;br /&gt;Else&lt;br /&gt;    For R = M * 3 - 2 To M * 3&lt;br /&gt;        If SUDOKU(R, T, 0) = Number Then Res = 1: Fin = True: Exit For&lt;br /&gt;    Next R&lt;br /&gt;    If Not Fin Then&lt;br /&gt;        For R = N * 3 - 2 To N * 3&lt;br /&gt;            If SUDOKU(R, T, 0) = Number Then Res = 1: Fin = True: Exit For&lt;br /&gt;        Next R&lt;br /&gt;    End If&lt;br /&gt;    If Fin Then Tmp(3) = 1&lt;br /&gt;End If&lt;br /&gt;T = Y * 3 - 3 + D&lt;br /&gt;Fin = False&lt;br /&gt;If SUDOKU(X * 3 - 2, T, 0) &gt; 0 And SUDOKU(X * 3 - 1, T, 0) &gt; 0 And SUDOKU(X * 3, T, 0) &gt; 0 Then&lt;br /&gt;    Res = Res + 1&lt;br /&gt;Else&lt;br /&gt;    For R = M * 3 - 2 To M * 3&lt;br /&gt;        If SUDOKU(R, T, 0) = Number Then Res = Res + 1: Fin = True: Exit For&lt;br /&gt;    Next R&lt;br /&gt;    If Not Fin Then&lt;br /&gt;        For R = N * 3 - 2 To N * 3&lt;br /&gt;            If SUDOKU(R, T, 0) = Number Then Res = Res + 1: Fin = True: Exit For&lt;br /&gt;        Next R&lt;br /&gt;    End If&lt;br /&gt;    If Fin Then Tmp(4) = 1&lt;br /&gt;End If&lt;br /&gt;If Ans = 2 And Res = 2 Then Surround = True: Exit Function&lt;br /&gt;TmpA = SUDOKU(X * 3 - 3 + I, Y * 3 - 3 + C, 0)&lt;br /&gt;TmpB = SUDOKU(X * 3 - 3 + I, Y * 3 - 3 + D, 0)&lt;br /&gt;If Ans = 2 And ((TmpA &gt; 0 And TmpB &gt; 0) Or (Tmp(4) = 1 And TmpA &gt; 0) Or (Tmp(3) = 1 And TmpB &gt; 0)) Then Surround = True: Exit Function&lt;br /&gt;TmpA = SUDOKU(X * 3 - 3 + A, Y * 3 - 3 + J, 0)&lt;br /&gt;TmpB = SUDOKU(X * 3 - 3 + B, Y * 3 - 3 + J, 0)&lt;br /&gt;If Res = 2 And ((TmpA &gt; 0 And TmpB &gt; 0) Or (Tmp(2) = 1 And TmpA &gt; 0) Or (Tmp(1) = 1 And TmpB &gt; 0)) Then Surround = True: Exit Function&lt;br /&gt;End Function&lt;br /&gt;Private Function Environment(ByVal Number As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal I As Integer, ByVal J As Integer) As Boolean&lt;br /&gt;Dim A As Integer, B As Integer, C As Integer, D As Integer&lt;br /&gt;Dim M As Integer, N As Integer, P As Integer, Q As Integer&lt;br /&gt;GetBoundary X, M, N&lt;br /&gt;GetBoundary Y, P, Q&lt;br /&gt;GetBoundary I, A, B&lt;br /&gt;GetBoundary J, C, D&lt;br /&gt;Dim Tmp(1) As Boolean&lt;br /&gt;Dim Found As Boolean&lt;br /&gt;Dim T As Integer&lt;br /&gt;Dim K As Integer&lt;br /&gt;Dim Tmps As Integer&lt;br /&gt;Environment = False&lt;br /&gt;Found = True&lt;br /&gt;K = X * 3 - 3 + I&lt;br /&gt;For T = 1 To 3 '当所在列出现该数的存在概率时&lt;br /&gt;    If SUDOKU(K, P * 3 - 3 + T, Number) = 1 Or SUDOKU(K, Q * 3 - 3 + T, Number) = 1 Then Found = False: Exit For&lt;br /&gt;Next T&lt;br /&gt;If Found Then&lt;br /&gt;    K = X * 3 - 3 + A&lt;br /&gt;    If SUDOKU(K, Y * 3 - 3 + J, 0) &gt; 0 Then&lt;br /&gt;        Found = True&lt;br /&gt;    Else&lt;br /&gt;        For T = 1 To 3&lt;br /&gt;            If SUDOKU(K, P * 3 - 3 + T, Number) = 1 Then Exit For&lt;br /&gt;            If SUDOKU(K, Q * 3 - 3 + T, Number) = 1 Then Exit For&lt;br /&gt;            If SUDOKU(K, P * 3 - 3 + T, 0) = Number Then Exit For&lt;br /&gt;            If SUDOKU(K, Q * 3 - 3 + T, 0) = Number Then Exit For&lt;br /&gt;        Next T&lt;br /&gt;        If T &lt; 4 Then Found = True&lt;br /&gt;    End If&lt;br /&gt;    If Found Then&lt;br /&gt;        Found = False&lt;br /&gt;        K = X * 3 - 3 + B&lt;br /&gt;        If SUDOKU(K, Y * 3 - 3 + J, 0) &gt; 0 Then&lt;br /&gt;            Found = True&lt;br /&gt;        Else&lt;br /&gt;            For T = 1 To 3&lt;br /&gt;                If SUDOKU(K, P * 3 - 3 + T, Number) = 1 Then Exit For&lt;br /&gt;                If SUDOKU(K, Q * 3 - 3 + T, Number) = 1 Then Exit For&lt;br /&gt;                If SUDOKU(K, P * 3 - 3 + T, 0) = Number Then Exit For&lt;br /&gt;                If SUDOKU(K, Q * 3 - 3 + T, 0) = Number Then Exit For&lt;br /&gt;            Next T&lt;br /&gt;            If T &lt; 4 Then Found = True&lt;br /&gt;        End If&lt;br /&gt;    End If&lt;br /&gt;End If&lt;br /&gt;If Found Then Tmp(0) = True&lt;br /&gt;Found = True&lt;br /&gt;K = Y * 3 - 3 + J&lt;br /&gt;For T = 1 To 3 '当所在列出现该数的存在概率时&lt;br /&gt;    If SUDOKU(M * 3 - 3 + T, K, Number) = 1 Or SUDOKU(N * 3 - 3 + T, K, Number) = 1 Then Found = False: Exit For&lt;br /&gt;Next T&lt;br /&gt;If Found Then&lt;br /&gt;    K = Y * 3 - 3 + C&lt;br /&gt;    If SUDOKU(X * 3 - 3 + I, K, 0) &gt; 0 Then&lt;br /&gt;        Found = True&lt;br /&gt;    Else&lt;br /&gt;        For T = 1 To 3&lt;br /&gt;            If SUDOKU(M * 3 - 3 + T, K, Number) = 1 Then Exit For&lt;br /&gt;            If SUDOKU(N * 3 - 3 + T, K, Number) = 1 Then Exit For&lt;br /&gt;            If SUDOKU(M * 3 - 3 + T, K, 0) = Number Then Exit For&lt;br /&gt;            If SUDOKU(N * 3 - 3 + T, K, 0) = Number Then Exit For&lt;br /&gt;        Next T&lt;br /&gt;        If T &lt; 4 Then Found = True&lt;br /&gt;    End If&lt;br /&gt;    If Found Then&lt;br /&gt;        Found = False&lt;br /&gt;        K = Y * 3 - 3 + D&lt;br /&gt;        If SUDOKU(X * 3 - 3 + I, K, 0) &gt; 0 Then&lt;br /&gt;            Found = True&lt;br /&gt;        Else&lt;br /&gt;            For T = 1 To 3&lt;br /&gt;                If SUDOKU(M * 3 - 3 + T, K, Number) = 1 Then Exit For&lt;br /&gt;                If SUDOKU(N * 3 - 3 + T, K, Number) = 1 Then Exit For&lt;br /&gt;                If SUDOKU(M * 3 - 3 + T, K, 0) = Number Then Exit For&lt;br /&gt;                If SUDOKU(N * 3 - 3 + T, K, 0) = Number Then Exit For&lt;br /&gt;            Next T&lt;br /&gt;            If T &lt; 4 Then Found = True&lt;br /&gt;        End If&lt;br /&gt;    End If&lt;br /&gt;End If&lt;br /&gt;If Found Then Tmp(1) = True&lt;br /&gt;If Tmp(0) And Tmp(1) Then Environment = True: Exit Function&lt;br /&gt;If Tmp(0) And SUDOKU(X * 3 - 3 + I, Y * 3 - 3 + C, 0) &gt; 0 And SUDOKU(X * 3 - 3 + I, Y * 3 - 3 + D, 0) &gt; 0 Then Environment = True: Exit Function&lt;br /&gt;If Tmp(1) And SUDOKU(X * 3 - 3 + A, Y * 3 - 3 + J, 0) &gt; 0 And SUDOKU(X * 3 - 3 + B, Y * 3 - 3 + J, 0) &gt; 0 Then Environment = True&lt;br /&gt;End Function&lt;br /&gt;Private Sub GetBoundary(ByVal Index As Integer, ByRef Down As Integer, ByRef Up As Integer)&lt;br /&gt;Select Case Index&lt;br /&gt;    Case 1&lt;br /&gt;        Down = 2: Up = 3&lt;br /&gt;    Case 2&lt;br /&gt;        Down = 1: Up = 3&lt;br /&gt;    Case 3&lt;br /&gt;        Down = 1: Up = 2&lt;br /&gt;End Select&lt;br /&gt;End Sub&lt;br /&gt;'外推法分析区结束&lt;br /&gt;Private Function Deal() As Boolean&lt;br /&gt;Deal = False&lt;br /&gt;Dim HasNew As Boolean&lt;br /&gt;HasNew = True&lt;br /&gt;Dim I As Integer, J As Integer, K As Integer&lt;br /&gt;Dim P1() As Integer, P2() As Integer, P3() As Integer, P4() As Integer&lt;br /&gt;Dim T As Integer&lt;br /&gt;Do While HasNew = True&lt;br /&gt;    HasNew = False&lt;br /&gt;    For I = 1 To 9&lt;br /&gt;        P1 = AnalyzeRestH(I)&lt;br /&gt;        For J = 1 To 9&lt;br /&gt;            If SUDOKU(I, J, 0) = 0 Then&lt;br /&gt;                P2 = AnalyzeRestV(J)&lt;br /&gt;                P3 = AnalyzeRestR(Int((I - 1) / 3) * 3 + Int((J - 1) / 3) + 1)&lt;br /&gt;                P4 = Union(P1, P2, P3)&lt;br /&gt;                If UBound(P4) = 1 Then&lt;br /&gt;                    SUDOKU(I, J, 0) = P4(1)&lt;br /&gt;                    HasNew = True&lt;br /&gt;                Else&lt;br /&gt;                    For T = 1 To UBound(P4)&lt;br /&gt;                        If Surround(P4(T), Int((I - 1) / 3 + 1), Int((J - 1) / 3 + 1), I - Int((I - 1) / 3) * 3, J - Int((J - 1) / 3) * 3) Then&lt;br /&gt;                            SUDOKU(I, J, 0) = P4(T)&lt;br /&gt;                            HasNew = True&lt;br /&gt;                            Exit For&lt;br /&gt;                        End If&lt;br /&gt;                    Next T&lt;br /&gt;                End If&lt;br /&gt;            End If&lt;br /&gt;        Next&lt;br /&gt;    Next&lt;br /&gt;    If HasNew Then Deal = True&lt;br /&gt;Loop&lt;br /&gt;End Function&lt;br /&gt;Private Function ThirdLogic() As Boolean&lt;br /&gt;ThirdLogic = False&lt;br /&gt;Dim HasNew As Boolean&lt;br /&gt;HasNew = True&lt;br /&gt;Dim I As Integer, J As Integer&lt;br /&gt;Dim T As Integer, K As Integer&lt;br /&gt;Dim X As Integer, Y As Integer&lt;br /&gt;Dim P1() As Integer, P2() As Integer, P3() As Integer, P4() As Integer&lt;br /&gt;For I = 1 To 9&lt;br /&gt;    P1 = AnalyzeRestH(I)&lt;br /&gt;    For J = 1 To 9&lt;br /&gt;        For T = 1 To 9&lt;br /&gt;            SUDOKU(I, J, T) = 0&lt;br /&gt;        Next T&lt;br /&gt;        If SUDOKU(I, J, 0) = 0 Then&lt;br /&gt;            P2 = AnalyzeRestV(J)&lt;br /&gt;            P3 = AnalyzeRestR(Int((I - 1) / 3) * 3 + Int((J - 1) / 3) + 1)&lt;br /&gt;            P4 = Union(P1, P2, P3)&lt;br /&gt;            If UBound(P4) &gt; 1 Then&lt;br /&gt;                For T = 1 To UBound(P4)&lt;br /&gt;                    SUDOKU(I, J, P4(T)) = 1&lt;br /&gt;                Next&lt;br /&gt;            End If&lt;br /&gt;        End If&lt;br /&gt;    Next J&lt;br /&gt;Next I&lt;br /&gt;Do While HasNew = True&lt;br /&gt;    HasNew = False&lt;br /&gt;    For I = 1 To 9&lt;br /&gt;        For J = 1 To 9&lt;br /&gt;            For T = 1 To 9&lt;br /&gt;                If SUDOKU(I, J, T) = 1 Then&lt;br /&gt;                    X = Int((I - 1) / 3 + 1)&lt;br /&gt;                    Y = Int((J - 1) / 3 + 1)&lt;br /&gt;                    If Environment(T, X, Y, I - Int((I - 1) / 3) * 3, J - Int((J - 1) / 3) * 3) Then&lt;br /&gt;                        SUDOKU(I, J, 0) = T&lt;br /&gt;                        For K = 1 To 9&lt;br /&gt;                            SUDOKU(I, K, T) = 0&lt;br /&gt;                            SUDOKU(K, J, T) = 0&lt;br /&gt;                        Next K&lt;br /&gt;                        For K = 1 To 3&lt;br /&gt;                            SUDOKU(X * 3 - 2, Y * 3 - 3 + K, T) = 0&lt;br /&gt;                            SUDOKU(X * 3 - 1, Y * 3 - 3 + K, T) = 0&lt;br /&gt;                            SUDOKU(X * 3, Y * 3 - 3 + K, T) = 0&lt;br /&gt;                        Next K&lt;br /&gt;                        HasNew = True&lt;br /&gt;                        Exit For&lt;br /&gt;                    End If&lt;br /&gt;                End If&lt;br /&gt;            Next T&lt;br /&gt;        Next J&lt;br /&gt;    Next I&lt;br /&gt;    If HasNew Then ThirdLogic = True&lt;br /&gt;Loop&lt;br /&gt;End Function&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-2296104518765916925?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/2296104518765916925/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=2296104518765916925' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2296104518765916925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2296104518765916925'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/sudoku10.html' title='SUDOKU破解与生成程序1.0'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-3177874522668672928</id><published>2009-05-13T16:09:00.001+08:00</published><updated>2009-05-13T16:09:58.040+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OSN'/><title type='text'>华为 OptiX OSN 2500</title><content type='html'>OptiX OSN 2500 智能光传输系统是继承了MSTP技术的全部特点，与传统SDH、MSTP网络保持兼容，融SDH、PDH、Ethernet、WDM、ATM、ESCON、FC/FICON、DVB-ASI(Digital Video Broadcast-Asynchronous Serial Interface)、RPR等技术为一体的新一代2.5G/622M多业务光传输平台(MSTP)，主要应用在城域网络中的汇聚与接入层，为现有SDH设备向智能光网络设备过渡提供了完善的解决方案。&lt;br /&gt;功能描述: 高性价比的平台化 OptiX OSN 7500/3500/2500/1500业务板件、软件完全兼容，构成统一平台。这样可以大大降低维护成本以及备板备件的成本。OSN智能平台在业务能力方面高效组合，给运营商最高性价比的解决方案；同时与华为已有的设备可以混合组网，可以纳入华为光网络网管解决方案进行统一管理。 灵活的设备配置 STM-16/4兼容设备； 支持网络设备从622M到2.5G的在线升级。 大容量调度 支持20G高低阶全交叉：高阶128×128 VC-4，低阶8064×8064 VC-12或等效的VC-3交叉能力。 多业务提供 业务接口 支持STM-1(O/E)； 支持STM-4/16标准或级联业务； 支持E1/T1/E3/T3/E4；支持FE、GE业务的透传和交换； 支持ATM业务； 　　支持IMA业务；　　支持SAN业务和视频业务； 提供基于GMPLS的快速端到端业务&lt;br /&gt;特征与优势: 高度集成 子架集成度：子架尺寸为460mm(高)×440mm(宽)×295mm(深)，单子架具备9个业务板位，8个接口板位。 REG功能 支持基于 OSN 2500 设计的硬件REG设备； 强组网能力 支持Mesh网络节点即插即用 支持Mesh网络在线任意速率升级扩容； 支持Mesh网络中多达40个光方向的组网； 支持链、环、相交环、相切环等多种SDH组网拓扑； 　　支持RPR、VP-RING环网； 单子架可实现1×STM-64四纤环或2×STM-16四纤环或4×STM-16二纤环。 内置波分技术 提供双路光分叉复用单板； 提供任意速率光波长转换单板。 完善的网络生存机制 Mesh恢复 支持分布式可恢复重路由保护； 提供5类更细化的业务保护方案，根据不同SLA提供：钻石级、金级、银级、铜级、铁级业务。 SDH保护 支持2F/4F MSP、SNCP、DNI、共享光线虚拟路径保护等。 数据业务保护 支持以太业务RPR环网保护，STP生成树保护； 支持ATM业务VP-RING环网保护。 完备的设备保护机制 智能控制单元保护：1＋1热备份； 支持关键单元如交叉、时钟1＋1热备份保护； 电源保护； TPS保护。&lt;br /&gt;技术规格: OptiX OSN 2500 电源接入 -48V DC、通过外置UPM实现交流220V接入 安装方式 ETSI 300mm深机柜、ETSI 600mm深机柜、19英寸机柜中安装 尺寸 460mm(高)×440mm(宽)×295mm(深) 典型重量 24kg 典型功耗 206W&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-3177874522668672928?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/3177874522668672928/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=3177874522668672928' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3177874522668672928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3177874522668672928'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/optix-osn-2500.html' title='华为 OptiX OSN 2500'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-6024743567421668947</id><published>2009-05-13T14:58:00.001+08:00</published><updated>2009-05-13T14:58:51.493+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AHK'/><title type='text'>读代码学ahk 系列之10</title><content type='html'>1、MsgBox命令有几种格式？&lt;br /&gt;MsgBox, 文本 或 MsgBox [, 类型,标题, 文本, 显示时间 ]&lt;br /&gt;2、MsgBox命令按钮有几种类型？&lt;br /&gt;OK—0&lt;br /&gt;OK/Cancel—1&lt;br /&gt;Abort/Retry/Ignore—2&lt;br /&gt;Yes/No/Cancel—3&lt;br /&gt;Yes/No—4&lt;br /&gt;Retry/Cancel—5&lt;br /&gt;Icon Hand (stop/error)—16&lt;br /&gt;Icon Question—32&lt;br /&gt;Icon Exclamation—48&lt;br /&gt;Icon Asterisk (info)—64&lt;br /&gt;Make 2nd button the default—256&lt;br /&gt;Make 3rd button the default—512&lt;br /&gt;System Modal (always on top) —4096&lt;br /&gt;Task Modal—8192    这些参数允许相加而得到复合效果。&lt;br /&gt;3、显示含有yes/no按钮并总在顶端的对话框？&lt;br /&gt;msgbox,4100,标题,内容&lt;br /&gt;4、MsgBox如何换行？&lt;br /&gt;MsgBox,你好，欢迎关注静海安澜阁 `n 请继续关注 &lt;br /&gt;&lt;br /&gt;5、如何对MsgBox命令的选择结果进行处理？&lt;br /&gt;IfMsgBox, ButtonName &lt;br /&gt;ButtonName可选项: Yes No OK Cancel Abort Ignore Retry Timeout&lt;br /&gt;6、对话框显示时间，并以秒为单位？&lt;br /&gt;msgbox , , 标题 , 内容 , 5&lt;br /&gt;7、运行外部可执行程序或者直接打开文件？&lt;br /&gt;Run, 目标文件[ , 工作目录 , Max|Min|Hide|UseErrorLevel , 输出PID 变量]&lt;br /&gt;8、如何运行记事本并以最大化状态显示？&lt;br /&gt;Run, Notepad.exe , , Max&lt;br /&gt;9、如何直接打开文件？&lt;br /&gt;Run, MyFile.txt&lt;br /&gt;10、命令行解释器cmd.exe 用那个宏来表示？&lt;br /&gt;%ComSpec% /k在执行完命令后保留命令提示窗口，而/c则在执行完命令之后关闭提示窗口&lt;br /&gt;11、命令“dir c:\Windows\system32”如何实现？&lt;br /&gt;Run, %ComSpec% /k dir c:\Windows\system32&lt;br /&gt;12、如何打开网页？&lt;br /&gt;Run, http://hi.baidu.com/xuejinglan&lt;br /&gt;13、如何打开系统属性窗口？&lt;br /&gt;Run control sysdm.cpl   需要的话可以搜索所有的*.cpl文件&lt;br /&gt;14、打开控制面板？&lt;br /&gt;run,control&lt;br /&gt;15、如何打开搜索窗口且指定搜索位置？&lt;br /&gt;Run, find C:\&lt;br /&gt;16、如何显示指定文件的属性窗口？&lt;br /&gt;Run, properties MyFile.txt 注意：AHK 在退出前将自动关闭打开的属性窗口！&lt;br /&gt;17、如何打印指定文件？&lt;br /&gt;Run, print MyFile.txt&lt;br /&gt;18、等待窗口出现、被激活、被关闭用那些命令？&lt;br /&gt;WinWait/WinWaitActive/WinWaitClose&lt;br /&gt;19、如何使目标窗口出现之前不执行后面语句？&lt;br /&gt;WinWait [, 窗口标题, 窗口文本, 超时时间, 排除标题, 排除文本]&lt;br /&gt;20、如何使目标窗口成为活动窗口？&lt;br /&gt;WinActivate [,窗口标题, 窗口文本, 排除标题, 排除文本]&lt;br /&gt;21、关闭窗口有几种方式？&lt;br /&gt;正常关闭窗口（WinClose ），强行关闭窗口（WinKill）：&lt;br /&gt;WinClose/WinKill [ , 窗口标题, 窗口文本, 超时时间, 排除标题, 排除文本]&lt;br /&gt;22、同名窗口使我们无法用窗口标题准确标识窗口，如何使用窗口ID来准确定位窗口？&lt;br /&gt;使用获得窗口句柄的命令WinGet&lt;br /&gt;WinGet[, 输出变量, CMD, 窗口标题, 窗口文本, 排除标题, 排除文本]&lt;br /&gt;23、如何用窗口ID来替代窗口标题？&lt;br /&gt;ahk_pid %ThisPID%&lt;br /&gt;24、那个命令把鼠标点击事件发送到目标窗口的目标控件上？&lt;br /&gt;ControlClick [, 目标控件或坐标位置, 窗口标题, 窗口文本, 鼠标按钮, 点击次数, 选项, 排除标题,排除文本]&lt;br /&gt;25、ControlClick命令中，目标控件参数主要是什么？&lt;br /&gt;目标控件参数是指要点击的控件的类别名（ClassNN）或控件文本，还可以使用控件句柄（若用的是控件句柄则第一个参数需留空，&lt;br /&gt;并在第二个参数中使用ahk_id %控件句柄%）。&lt;br /&gt;26、如何获得目标控件信息？&lt;br /&gt;先打开你要进行操作的目标窗口，然后运行AutoIt3 Window Spy，把鼠标移到目标控件上&lt;br /&gt;27、鼠标单击系统属性确定按钮代码是？&lt;br /&gt;ControlClick, 确定, 系统属性 &lt;br /&gt;ControlClick, Button2, 系统属性&lt;br /&gt;28、目标窗口或控件是隐藏状态，ControlClick还可以点击目标控件吗?&lt;br /&gt;可以点击目标控件，但不能保证成功率。&lt;br /&gt;29、如何设置控件文本？&lt;br /&gt;ControlSetText [, 目标控件, 新文本, 窗口标题, 窗口文本, 排除标题, 排除文本] &lt;br /&gt;例如：ControlSetText, Edit1, D:\foobar2000, Setup foobar&lt;br /&gt;30、如何选中和取消单选框和复选框项目中的选择项目？&lt;br /&gt;Control [, 命令, 值, 目标控件, 窗口标题, 窗口文本, 排除标题, 排除文本] &lt;br /&gt;其中，“命令”就是让我们指定要进行何种设置的参数。对这些单选框/复选框按钮来说，适用的命令是“Check”和“UnCheck ”。&lt;br /&gt;例如：Control, Check, , Button5, foobar    &lt;br /&gt;Control, UnCheck, , Button7, foobar&lt;br /&gt;31、如何选择下拉列表的项目？&lt;br /&gt;仍是使用Control命令，适用的命令是“Choose, N”和“ChooseString, String”，分别表示选中第N个项目和选中与字符串String&lt;br /&gt;匹配的项目；例如：&lt;br /&gt;Control, Choose, 5, ComboBox1, Installer &lt;br /&gt;Control, ChooseString, 简体中文, ComboBox1, Installer&lt;br /&gt;32、键盘如何重定义？&lt;br /&gt;a::b&lt;br /&gt;33、字符串如何进行自动替换？&lt;br /&gt;::is::island of resistance或者&lt;br /&gt;::china::&lt;br /&gt;Clipboard=中华人民共和国&lt;br /&gt;send,^V&lt;br /&gt;Return&lt;br /&gt;34、屏蔽或开启键盘、鼠标？&lt;br /&gt;BlockInput 命令后，紧跟on，则屏蔽键盘鼠标操作，紧跟off，则重新启用用户输入。 &lt;br /&gt;如何仅仅屏蔽鼠标？如何恢复？ BlockInput,MouseMove   恢复为：BlockInput, MouseMoveOff&lt;br /&gt;35、如何建立一个弹出式窗口例示文本？如何关闭？&lt;br /&gt;SplashTextOn [, 宽度, 高度, 标题, 文本]&lt;br /&gt;`n 可以在MsgBox和SplashTextOn等命令中对显示的文本进行换行。&lt;br /&gt;SplashTextOff 为关闭SplashTextOn命令建立的弹出式窗口。&lt;br /&gt;36、如何将一系列指令重复执行指定次数？ Loop [, Count]&lt;br /&gt;{&lt;br /&gt;循环体……&lt;br /&gt;}&lt;br /&gt;37、Loop中的count允许是表达式或者变量吗？&lt;br /&gt;Count不允许是表达式，但允许是一个变量。 &lt;br /&gt;如何知道loop现在循环到第几次？ loop 指令隐含有一个变量 A_Index ，用来记录当前状态是第几次循环&lt;br /&gt;38、如何中断循环？&lt;br /&gt;if a_index &gt; 25&lt;br /&gt;break ; 中断循环&lt;br /&gt;39、如何跳过本次循环？&lt;br /&gt;if a_index &lt; 20&lt;br /&gt;continue ; 跳过本次循环，开始一次新的循环&lt;br /&gt;40、如何使使脚本等待指定时间？&lt;br /&gt;Sleep,时间   单位为毫秒&lt;br /&gt;41、如进行数学运算，使用什么符来把表达式运算的结果赋予某变量？&lt;br /&gt;使用冒号等号符。如：NetPrice := Price * (1 - Discount/100)&lt;br /&gt;&lt;br /&gt;42、i := i+1 的简化写法是什么？&lt;br /&gt;i + =1&lt;br /&gt;43、如何获取指定区间的随机数？&lt;br /&gt;Random, 输出变量 [, 最小值, 最大值]&lt;br /&gt;44、如何从指定文本中读取指定行？&lt;br /&gt;FileReadLine, 输出变量, 文件名, 行数&lt;br /&gt;45、如何判断文本超出边界？&lt;br /&gt;ErrorLevel 是命令内置的一个变量，当读取文件超出边界时将被赋值为1.&lt;br /&gt;46、ErrorLevel 为0和1时一般代表什么？&lt;br /&gt;一般情况下，为0代表操作成功，为1，代表操作失败。&lt;br /&gt;47、一般情况下，编写弹出式菜单代码的顺序是什么？&lt;br /&gt;1、先定义子菜单项；2、编写菜单项；3、编写令菜单显示的代码；4、编写删除代码；5、编写响应代码。&lt;br /&gt;48、如何添加子菜单？&lt;br /&gt;Menu,add,子菜单项,:子菜单变量如：menu,mymenu,add,常用程序,:amenu&lt;br /&gt;49、用来在弹出式菜单中显示一条分割线的代码是？&lt;br /&gt;Menu, MenuName, add&lt;br /&gt;50、正常菜单项的代码是？&lt;br /&gt;Menu, MenuName, add,菜单项,响应标志&lt;br /&gt;51、响应代码的格式是？&lt;br /&gt;响应标志：&lt;br /&gt;响应代码……&lt;br /&gt;return&lt;br /&gt;52、形如：Menu,amenu,add,txt 的代码是什么意思？&lt;br /&gt;它其实是Menu,amenu,add,txt,txt 的一种简写，代表菜单项和响应标志&lt;br /&gt;53、在指定坐标处显示菜单项的代码是？&lt;br /&gt;Menu,MenuName,show,X坐标,Y坐标 如省略坐标，则在鼠标当前位置显示菜单项。&lt;br /&gt;54、如何指定显示菜单的背景色？&lt;br /&gt;Menu,MenuName,color,颜色代码&lt;br /&gt;55、删除所有菜单的代码是什么？有什么作用？&lt;br /&gt;Menu,mymenu,deleteall &lt;br /&gt;如果没有这句代码，代码中分割线会在菜单重显时翻倍。如无分割线，可免&lt;br /&gt;56、重启、关闭、注销系统的指令是什么？&lt;br /&gt;Shutdown 后跟0为注销1为关机，2为重启，4为强制关闭 8为关闭关闭电源&lt;br /&gt;57、隐藏脚本图标有几种方法？&lt;br /&gt;Menu , tray , noicon 或者#NoTrayIcon&lt;br /&gt;58、显示脚本图标的代码？&lt;br /&gt;Menu , tray , icon&lt;br /&gt;59、脚本图标的气泡提示如何显示？&lt;br /&gt;Menu , tray , tip , 我自己的脚本&lt;br /&gt;60、如何设置脚本的图标？&lt;br /&gt;Menu , tray , icon , %systemroot%\system32\shell32.dll ,22或者Menu , tray , icon , e:\ico\1.ico&lt;br /&gt;61、如何利用快捷键退出脚本？&lt;br /&gt;#x::ExitApp&lt;br /&gt;62、如何移除托盘图标的所有标准菜单项？&lt;br /&gt;Menu , tray , NoStandard&lt;br /&gt;&lt;br /&gt;63、如何插入托盘图标菜单？&lt;br /&gt;Menu , tray , add , myitem&lt;br /&gt;64、如何显示托盘图标的标准菜单项？&lt;br /&gt;Menu , tray , standard&lt;br /&gt;65、在托盘图标显示一个二级菜单代码如何表示？&lt;br /&gt;menu,mymenu,add,boke&lt;br /&gt;menu,mymenu,add,luntan&lt;br /&gt;menu,tray,add,相关网站,:mymenu&lt;br /&gt;Return   注意：响应标志后是 ：不是：：&lt;br /&gt;66、如何使非热键类的脚本持久运行？&lt;br /&gt;#Persistent&lt;br /&gt;67、显示一个标准的文件选择对话框的代码为？&lt;br /&gt;FileSelectFile, OutputVar [, Options, RootDir, Prompt, Filter] &lt;br /&gt;Option 参数如被省略，则为单选。M 多选，M后允许随意跟随一个数字。S: 显示保存对话框。数字为一般为3，即文件及路径必须存在。Filter 参数格式如：Example: Audio (*.wav; *.mp2; *.mp3)&lt;br /&gt;68、FileSelectFile命令如用户选择了多个文件，输出变量如何分割？&lt;br /&gt;输出变量用(`n)字符分割。第一个参数为路径，随后紧跟选定的各个文件名。&lt;br /&gt;if files =&lt;br /&gt;{&lt;br /&gt;MsgBox, 用户放弃选择。&lt;br /&gt;}&lt;br /&gt;Loop, parse, files, `n&lt;br /&gt;{&lt;br /&gt;if a_index = 1&lt;br /&gt;mypath = %A_LoopField%&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;runwait, %mypath%\%A_LoopField%&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return&lt;br /&gt;69、运行并等待程序完成的指令是？&lt;br /&gt;runwait&lt;br /&gt;70、从某字符串中逐次分解出一个个的子串。&lt;br /&gt;Loop, Parse , 某字符串 , 用于分割的特征变量&lt;br /&gt;71、用对话框显示音量递增10%？&lt;br /&gt;MsgBox, 音量递增10`%&lt;br /&gt;72、使静音或者取消静音状态？&lt;br /&gt;SoundSet, +1, , mute 或者Send,{Volume_Mute}&lt;br /&gt;73、使主音量提升（降低）10%？&lt;br /&gt;SoundSet ,+（-）10, MASTER&lt;br /&gt;74、使音量中波形音量提升（降低）10%？&lt;br /&gt;SoundSet , +（-）10, WAVE&lt;br /&gt;75、#NoEnv 作用是什么？&lt;br /&gt;主要是为了与以后兼容，也可以改善性能&lt;br /&gt;76、如何对某些多媒体功能键重定义？&lt;br /&gt;建个脚本内容为#InstallKeybdHook并执行，双击图标，窗口中选择菜单 view 第四项 key 开头的然后按多媒体键,f5刷新,看第二列内容比如a,显示的值是01e 。使用时就是sc01e::msgbox&lt;br /&gt;77、显示器的宽度和高度用那两个常数表示？&lt;br /&gt;A_ScreenWidth 和 A_ScreenHeight&lt;br /&gt;78、如何移动鼠标光标？&lt;br /&gt;MouseMove, X, Y [, Speed, R] Speed 参数的范围在 0 (最快) to 100 (最慢)之间取值. &lt;br /&gt;R 参数 如果有此参数，则鼠标移动将以当前位置为基准，进行 x 和 y 像素的位移.&lt;br /&gt;79、如何获取当前鼠标坐标？&lt;br /&gt;MouseGetPos, X, Y&lt;br /&gt;80、MouseGetPos还有什么作用？&lt;br /&gt;MouseGetPos 指令用来返回鼠标的当前位置，以及鼠标当前悬停的窗口和控件。格式为：&lt;br /&gt;MouseGetPos, [OutputVarX, OutputVarY, OutputVarWin, OutputVarControl&lt;br /&gt;OutputVarWin 这个变量存储了当前鼠标悬停的窗口的ID ，即使窗口未处于激活状态。OutputVarControl 这个变量存储了当前鼠标悬停的控件的名称（ClassNN）。&lt;br /&gt;81、MouseGetPos 命令在最后有1、2、3参数是什么意思？&lt;br /&gt;1：在多文档界面程序（例如 SysEdit 或 TextPadThis ）中可以准确的获取激活或置顶的子窗口信息。对其它情况就不那么准确了。2 ：在 OutputVarControl 中存储 control's HWND/窗口句柄。3 ：同时包含 1 和 2 的功能。&lt;br /&gt;82、如何在屏幕上建立一个紧随鼠标的弹出式窗口？&lt;br /&gt;ToolTip [, Text, X, Y]&lt;br /&gt;83、如何获得当前位置像素的颜色RGB的值？&lt;br /&gt;PixelGetColor, OutputVar, X, Y [, RGB]&lt;br /&gt;84、如何在系统托盘建立一个弹出式窗口？&lt;br /&gt;TrayTip [, Title, Text, Seconds, Options] 注意senconds的取值一般在10到30之间&lt;br /&gt;85、如何用指定时间间隔自动或重复激发某子程序？&lt;br /&gt;SetTimer , Label , 时间间隔&lt;br /&gt;86、关闭某进程的代码是？&lt;br /&gt;Process,close,autohotkey.exe&lt;br /&gt;87、如何检索鼠标所在位置的信息？&lt;br /&gt;MouseGetPos , , , id , control ; 得到鼠标所在位置窗口的id及控件名称&lt;br /&gt;WinGetTitle, title, ahk_id %id% ；检索到相应id对应窗口的标题 &lt;br /&gt;WinGetClass, class, ahk_id %id% ；检索到相应id对应窗口的类名&lt;br /&gt;88、如何得到当天的日期？&lt;br /&gt;dd = %A_YYYY%年%A_MM%月%A_DD%日&lt;br /&gt;89、如何给剪贴板赋值？&lt;br /&gt;clipboard = %var%&lt;br /&gt;90、当前桌面那个常数表示?&lt;br /&gt;%A_Desktop%&lt;br /&gt;91、如何设置鼠标速度？&lt;br /&gt;SetDefaultMouseSpeed 30; 默认的是2 ，可以从0调到100，越小越快&lt;br /&gt;92、如何设置鼠标动作结束之后的延迟？&lt;br /&gt;SetMouseDelay 30; 默认是10毫秒&lt;br /&gt;93、如何实现ctrl+鼠标双击？&lt;br /&gt;send ^{click 100,200 2}&lt;br /&gt;94、使滚轮向上滚2次？&lt;br /&gt;click wheelup 2 ; wheelup 可以写成WU&lt;br /&gt;95、滚轮向下滚一次？&lt;br /&gt;click wheeldown ；wheeldown 可以简化为WD&lt;br /&gt;96、使鼠标滚轮向下滚5次有几种方法？&lt;br /&gt;Click , WD,5或&lt;br /&gt;loop 5&lt;br /&gt;click WD&lt;br /&gt;97、当前位置鼠标单击左键&lt;br /&gt;click ；&lt;br /&gt;right 右键，left左键（默认可省略），middle 中键&lt;br /&gt;98、当前位置鼠标双击左键？&lt;br /&gt;click 2&lt;br /&gt;99、移动鼠标到30，40？&lt;br /&gt;click 30 , 40 , 0&lt;br /&gt;100、点击鼠标右键的代码如何编写？&lt;br /&gt;Click , 100 , 200 , right&lt;br /&gt;101、如果鼠标点击的坐标是动态的如何表达?&lt;br /&gt;Click %x% %y%&lt;br /&gt;102、拖动某图标?&lt;br /&gt;click 30,40 down&lt;br /&gt;click 50,60 up&lt;br /&gt;103、如何设置一个进度条？&lt;br /&gt;Progress , %i% , 进度条下文本 , 进度条上文本 , 标题&lt;br /&gt;104、如何创建快捷方式？&lt;br /&gt;FileCreateShortcut, 目标文件, 快捷方式名 [, 工作目录, 用空格分开的参数, 描述, 图标, 快捷键, 图标标号, 运行状态]&lt;br /&gt;注意：只需指定单个按键，所有的快捷键被指定为 CTRL+ALT + 快捷键，如果给该参数指定 B，将会产生一个 CTRL-ALT-B 的快捷键。运行状态1 - 正常(默认)3 - 最大化7 - 最小化&lt;br /&gt;105、空格键&lt;br /&gt;{space}&lt;br /&gt;106、向左的箭头 &lt;br /&gt;{Left}&lt;br /&gt;107、ctrl键？&lt;br /&gt;^&lt;br /&gt;108、alt键？&lt;br /&gt;!&lt;br /&gt;109、回车？&lt;br /&gt;{enter}&lt;br /&gt;110、小键盘的1？&lt;br /&gt;Numpad1&lt;br /&gt;111、Windows键?&lt;br /&gt;#&lt;br /&gt;112、Shift键？&lt;br /&gt;+&lt;br /&gt;113、逻辑与，把多个按键或鼠标组合成一个自定义键？&lt;br /&gt;&amp;&lt;br /&gt;114、一对按键中的左边的按键？&lt;br /&gt;&lt;     如&lt;!表示左边的Alt按键&lt;br /&gt;115、一对按键中的右边的按键？&lt;br /&gt;&gt;&lt;br /&gt;116、通配符，表示热键被按下时，即使同时还有其他的按键按下，依然有效？&lt;br /&gt;*&lt;br /&gt;117、热键被触发后，动作不会被阻塞？&lt;br /&gt;~&lt;br /&gt;118、禁用某键？&lt;br /&gt;在：：后紧跟return即可。如：RWin::return&lt;br /&gt;119、按键重映射？&lt;br /&gt;a::b 如：RAlt::Rbutton 右alt映射为鼠标右键Lbutton：：return 鼠标左键被屏蔽&lt;br /&gt;120、仅在notepad中交换a、b键？&lt;br /&gt;#IfWinActive ahk_class Notepad&lt;br /&gt;a::b ; &lt;br /&gt;#IfWinActive ;&lt;br /&gt;121、鼠标定义？&lt;br /&gt;LButton RButton MButton WheelDown WheelUp&lt;br /&gt;122、键盘定义？&lt;br /&gt;Space Tab Enter (or Return) Escape (or Esc) Backspace (or BS) Delete (or Del) Insert (or Ins) Home End PgUp PgDn Up Down Left Right ScrollLock CapsLock NumLock Numlock ON Numlock OFF Numpad0 NumpadPgUp NumpadDot (.) NumpadDel NumpadDiv (/) NumpadDiv (/) NumpadMult (*) NumpadMult (*) NumpadAdd (+) NumpadAdd (+) NumpadSub (-) NumpadSub (-) NumpadEnter NumpadEnter 1 a A LWin Control (or Ctrl) Alt Shift F1 PrintScreen CtrlBreak Pause Break&lt;br /&gt;123、注释&lt;br /&gt;；跟在需注释的语句之后，注意语句和分号之间至少要有一个空格。如果要注释多个语句可以使用/* */&lt;br /&gt;124、函数？&lt;br /&gt;Add(x, y)&lt;br /&gt;{&lt;br /&gt;    return x + y   ; "Return" expects an expression.&lt;br /&gt;} &lt;br /&gt;函数调用时，变量的后面使用 ：= 例如：Var := Add(2, 3) ; &lt;br /&gt;由于一个函数调用就是一个表达式，所以函数的参数列表里面的变量前面不能加百分号“%”，相反的，字符串要使用引号。当一个命令的参数调用函数的时候，如果命令的参数不支持表达式，就必须使用百分号“%”，如：&lt;br /&gt;MsgBox % "The answer is: " Add(3, 2)&lt;br /&gt;125、如果要想在热字符串替换后加上空格？&lt;br /&gt;在语句的后边加上 `，:*:btw::By the way `&lt;br /&gt;126、弹出光驱&lt;br /&gt;Drive, Eject,, 0&lt;br /&gt;127、收回光驱&lt;br /&gt;Drive, Eject,, 1&lt;br /&gt;128、使窗口透明，值在1-255之间？&lt;br /&gt;WinSet, Transparent, 100,我的电脑&lt;br /&gt;129、创建或更新启动界面？&lt;br /&gt;SplashImage,d:\1.jpg,b fs18&lt;br /&gt;Sleep,5000&lt;br /&gt;b fs 18 可以去除界面边框。原因不明&lt;br /&gt;130、修改脚本之后，按住左键后按R重新载入脚本&lt;br /&gt;~LButton &amp; r::&lt;br /&gt;reload&lt;br /&gt;return&lt;br /&gt;131、打开/激活记事本&lt;br /&gt;IfWinExist 无标题 - 记事本&lt;br /&gt;{&lt;br /&gt;WinActivate&lt;br /&gt;}&lt;br /&gt;Else&lt;br /&gt;{&lt;br /&gt;Run Notepad&lt;br /&gt;WinWait 无标题 - 记事本&lt;br /&gt;WinActivate&lt;br /&gt;}&lt;br /&gt;132、隐藏任务栏 WinHide ahk_class Shell_TrayWnd&lt;br /&gt;显示任务栏 WinShow ahk_class Shell_TrayWnd&lt;br /&gt;133、如何强制单线程？&lt;br /&gt;#SingleInstance force&lt;br /&gt;134、屏蔽Ctrl+Alt+Del？&lt;br /&gt;Regwrite,REG_SZ,HKEY_LOCAL_MACHINE,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe, Debugger, Hotkey Disabled&lt;br /&gt;解除屏蔽 RegDelete,HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe&lt;br /&gt;&lt;br /&gt;135、双击启动A程序.再双击,自动关闭A程序.&lt;br /&gt;ifexist, 程序窗口标题&lt;br /&gt;winkill, 程序窗口标题&lt;br /&gt;else&lt;br /&gt;run, 程序文件路径&lt;br /&gt;return&lt;br /&gt;136、当前窗口始终置于顶层?&lt;br /&gt;WinSet AlwaysOnTop, on, A&lt;br /&gt;137、关闭当前窗口置于顶层状态?&lt;br /&gt;WinSet AlwaysOnTop, off, A&lt;br /&gt;138、窗口还可以用表示? &lt;br /&gt;ahk_class class、ahk_pid %PID%、ahk_id %ID%&lt;br /&gt;139、音乐播放或暂停?&lt;br /&gt;Send , {Media_Play_Pause}&lt;br /&gt;140、音乐播放停止？&lt;br /&gt;Send , {Media_Stop}&lt;br /&gt;141、播放上一首？&lt;br /&gt;Send , {Media_Prev}&lt;br /&gt;142、播放下一首？&lt;br /&gt;Send , {Media_Next}&lt;br /&gt;143、按下浏览器回退键？&lt;br /&gt;Send , {BROWSER_BACK}&lt;br /&gt;144、按下浏览器 向前键？&lt;br /&gt;Send , {BROWSER_FORWARD}&lt;br /&gt;145、按下浏览器刷新键？&lt;br /&gt;Send , {BROWSER_REFRESH}&lt;br /&gt;146、按下浏览器停止键？&lt;br /&gt;Send , {BROWSER_STOP}&lt;br /&gt;147、按下浏览器搜索键？&lt;br /&gt;Send , {BROWSER_SEARCH}&lt;br /&gt;148、按下浏览器收藏键？&lt;br /&gt;Send , {BROWSER_FAVORITES}&lt;br /&gt;149、按下浏览器主页键？&lt;br /&gt;Send , {BROWSER_HOME}&lt;br /&gt;150、使静音？&lt;br /&gt;Send , {VOLUME_MUTE}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-6024743567421668947?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/6024743567421668947/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=6024743567421668947' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6024743567421668947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6024743567421668947'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/ahk-10.html' title='读代码学ahk 系列之10'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-2506053218431380314</id><published>2009-05-13T14:54:00.000+08:00</published><updated>2009-05-13T14:55:39.177+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AutoHotkey'/><category scheme='http://www.blogger.com/atom/ns#' term='AHK'/><title type='text'>推荐一款极其强大的软件 - AutoHotkey</title><content type='html'>AutoHotkey 这是一个很神奇的工具。是的，只能用神奇来形容。他的功能类似于按键精灵，可以帮助你完成一系列的动作。或许你已经用过按键精灵，但是在此之前你不会想到 AHK是多么的强大。你可以让他帮助你迅速打开常去的几个网站并且登陆邮箱，或者迅速的运行那些藏的很深的程序，你可以用他来做网游的挂机程序，也可以来做格斗游戏中连续技的脚本。只有你有足够的想象力，没有什么是AHK做不到的。与之类似的还有一个AtuoIt3，不过他的代码看起来要郁闷一些，相比之下我还是更喜欢AHK。&lt;br /&gt;如你所见，AHK的所有工作都是通过你所写的脚本来完成的。而这个脚本实际上就是一个普通的文本文件，AHK按照你所写的顺序一行一行的执行下去。写代码确实令人有些头痛，所以很多人对这个软件都望而却步。但是假如你愿意深入的研究一下，就会发现他的代码实际上非常简单易学。与之相对的是，软件自带了非常强大的帮助文件，可惜是英文的。所以我就写了这样一篇文章，希望可以让大家对AHK产生兴趣^_^&lt;br /&gt;&lt;br /&gt;首先是转自__ Scripting Life __的官方文档翻译&lt;br /&gt;介绍&lt;br /&gt;AutoHotkey 是一款免费的、Windows平台下开放源代码的热键脚本语言。有了它，您就可以：&lt;br /&gt;&lt;br /&gt;通过发送键盘或鼠标的键击动作命令来实现几乎所有操作的自动化。您可以自己编写 宏 或者使用宏录制器来生成； &lt;br /&gt;为键盘，游戏操纵杆和鼠标创建 热键。 事实上任何的按键、按钮或组合键都可以被设置为热键； &lt;br /&gt;当键入您自定义的缩写时可以 扩展缩写。例如， 键入“btw”就可以自动扩展为“by the way”； &lt;br /&gt;创建自定义的数据输入表格、用户界面、菜单等。详情请看 图形界面 部分； &lt;br /&gt;映射 键盘、游戏操纵杆和鼠标上的按键或按钮； &lt;br /&gt;运行现有的AutoIt v2脚本 并用 新功能 来增强它们； &lt;br /&gt;将脚本文件 编译 成EXE可执行文件，使得程序在没有安装AutoHotkey的机器上得以运行； &lt;br /&gt;借助 相关工具 以实现更强大的功能。&lt;br /&gt;更多关于热键的说明&lt;br /&gt;AutoHotkey 可令键盘、游戏操纵杆和鼠标的所有潜能都发挥出来。例如，除了典型的Control、Alt和Shift键之外，你还可以定义Win键（徽标键）和 Capslock键作为调节键。 而实际上你还可以设置任意的键盘按键或鼠标按键作为调节键。详细内容请看 高级热键 部分。&lt;br /&gt;其他功能&lt;br /&gt;&lt;br /&gt;调节音量、设置静音，以及其他 关于声卡的设置； &lt;br /&gt;令指定窗口变为 透明，顶层窗口，或改变 外形； &lt;br /&gt;用 游戏操纵杆 或 键盘 代替鼠标； &lt;br /&gt;监控 您的系统。例如，当您不希望见到的窗口出现时自动关闭它们； &lt;br /&gt;获取并改变 剪贴板的内容, 包括从资源管理器中复制的文件的名称； &lt;br /&gt;关闭或屏蔽 Windows自有的快捷键，例如Win+E和Win+R； &lt;br /&gt;取替Alt-Tab (通过按键、鼠标滚轮或按钮)从而减轻RSI（肢体重复性劳损 ）； &lt;br /&gt;使用您喜欢的图标、工具提示（ToolTip）、菜单项目和子菜单来自定义 托盘图标菜单 ； &lt;br /&gt;显示 对话框、工具提示（Tooltips）、气球提示 以及 弹出菜单，与用户交互； &lt;br /&gt;执行脚本动作来 响应 系统关闭或注销； &lt;br /&gt;检测系统 空闲时间。例如, 在系统空闲的时候执行高CPU负荷的任务； &lt;br /&gt;通过检测 图像 和 象素色彩来自动执行游戏中的动作； &lt;br /&gt;读取、写入 以及 解释 文本文件比起其他语言更容易； &lt;br /&gt;针对一组与 通配符 匹配的文件进行操作； &lt;br /&gt;可对 注册表 和 INI文件 进行操作。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;搞定以后就可以开始写脚本了。任何地方点击右键-新建，选择AutoHotkeyScript（AHK脚本），当然你也可以直接在文本编辑器里写好以后另存为.ahk文件。AutoHotkey会在关联后执行这些.ahk的文件，当然你也可以转换成exe的可执行文件（附带有此工具）。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;这里开始，是我的一个示例脚本。平时我需要经常运行很多软件，很麻烦，所以就写了这样一个程序。&lt;br /&gt;首先，我喜欢在上网的同时听歌，平时比较喜欢用foobar2000，所以打算在按下Win+1键时开始用它听歌；&lt;br /&gt;其次，玩游戏的时候经常配合gapa这个颜色优化工具，他的效果非常好，不过每次都要按F4更改配色方案，现在我希望按一下Win+2就可以自动帮我完成；&lt;br /&gt;然后，上网时候经常有需要记住的东西，所以我希望在按Win+3之后他可以把我当前复制的东西保存下来，也就是粘贴到记事本里去；&lt;br /&gt;最后，这个程序可以方便的退出。&lt;br /&gt;知道了要求之后，我们就来看看写出的脚本吧：&lt;br /&gt;&lt;br /&gt;Copy code &lt;br /&gt;;这里是我的一个示例脚本&lt;br /&gt;#InstallKeybdHook ;安装键盘钩子，不过其实这里可以不装&lt;br /&gt;msgbox, 这是我的常用软件运行脚本 `n按Win+1运行Foobar2000，并且开始播放 `n按Win+2运行gapa色彩优化工具，并且设置配色方案 `n按Win+3运行将当前复制的内容粘贴入记事本 `n按Win+X退出 ;只是一个弹出的对话框，`n是换行&lt;br /&gt;&lt;br /&gt;#1:: ;按下Win+1键&lt;br /&gt;Run, D:foobar2000foobar2000.exe, D:foobar2000 ;运行我的Foobar2000，为了防止出现意外把他设置为所在目录启动，以下同&lt;br /&gt;sleep, 500 ;还是稍微等一下吧，等程序运行&lt;br /&gt;send, !p ;按Alt+P，开始播放的快捷键&lt;br /&gt;return ;返回&lt;br /&gt;&lt;br /&gt;#2:: ;这是Win+2&lt;br /&gt;Run, %userprofile%Desktop色彩优化工具gapa.exe, %userprofile%Desktop色彩优化工具 ;执行gapa，在桌面上&lt;br /&gt;sleep, 500 ;再等待一下&lt;br /&gt;send {F4} ;按下F4修改配色方案&lt;br /&gt;return ;返回&lt;br /&gt;&lt;br /&gt;#3:: ;这是Win+3&lt;br /&gt;IfWinExist, Untitled - Notepad ;检测窗口是否存在，注意我的英文版xp记事本标题为Untitled - Notepad，如果你是中文版的话，应该为 未命名 - 记事本，下同&lt;br /&gt;{&lt;br /&gt;WinActivate ;如果存在就激活他&lt;br /&gt;}&lt;br /&gt;else ;否则&lt;br /&gt;{&lt;br /&gt;Run, Notepad ;运行notepad&lt;br /&gt;WinWait, Untitled - Notepad ;等一下&lt;br /&gt;WinActivate ;然后激活窗口&lt;br /&gt;}&lt;br /&gt;sleep, 500 ;继续等一下&lt;br /&gt;send, {enter}{enter}^v ;加入两个回车（空行），然后按ctrl+v粘贴&lt;br /&gt;return ;返回&lt;br /&gt;&lt;br /&gt;#x:: ;这是Win+X&lt;br /&gt;MsgBox, 4,, 你确定要退出吗 ;弹对话框，4,,是加入了Yes/No的选择&lt;br /&gt;IfMsgBox Yes ;如果点了是&lt;br /&gt;ExitApp ;退出当前脚本&lt;br /&gt;else ;否则&lt;br /&gt;MsgBox 程序还在运行中 ;弹出对话框&lt;br /&gt;return ;返回 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;;号后面都是我的注释，每一行都做了注释，应该还能看懂吧^_^。他整体代码的感觉比较类似于JS，不是很难。更详细的说明都可以在帮助文件中找到。&lt;br /&gt;另外，gapa这个程序我在每次退出时，都要按F6键返回默认配色，否则桌面时比较难受。所以可以继续做出如下修改：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#4:: ;按Win+4&lt;br /&gt;send {F6} ;按下F6恢复默认配色&lt;br /&gt;process, close, gapa.exe ;结束进程gapa.exe&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-2506053218431380314?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/2506053218431380314/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=2506053218431380314' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2506053218431380314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2506053218431380314'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/autohotkey.html' title='推荐一款极其强大的软件 - AutoHotkey'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-5558775806250990176</id><published>2009-05-12T13:00:00.006+08:00</published><updated>2009-05-13T14:54:35.506+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='5•12'/><title type='text'>姚明、李开复:30幅画 读懂灾区孩子的内心</title><content type='html'>&lt;p&gt;&lt;strong&gt;孩子们总在用各种方式让我们惊讶与感动，尤其是在一年后，当我们重新面对5•12这个沉重的日子时，更是如此。&lt;/strong&gt;&lt;br /&gt;大地震后，上海的美术老师张贵和奔赴灾区支教。期间，他和其他老师组织孩子们用画笔来表达内心，用色彩和线条记录情感。于是，就有了现在大家看到的这  &lt;a href="http://www.google.cn/music/512" target="_blank"&gt;30 幅稚嫩却充满真情的画作&lt;/a&gt;。&lt;/p&gt; &lt;p&gt;姚基金与谷歌中国的很多同事们，都看到了这些作品，并无一例外地被深深触动。是的，只有灾区的孩子们，才会画出如此“雷同”的题材——所有的画作都与地震、与灾难相关。而且，这些画作中经常出现的冷峻色彩、沉甸甸的笔触、呼之欲出的思念，恐怕也绝少在普通孩子的绘画作品中出现。&lt;br /&gt;&lt;br /&gt;在其中的一幅画作里，辛勤的鸟妈妈为巢里的鸟儿带回食物，大树下，想念妈妈的孩子淌着泪水仰望树梢，画面里写满了“妈妈”、“妈妈”的字样……&lt;br /&gt;&lt;br /&gt;&lt;img  src="http://3.bp.blogspot.com/_hk4GrggD0hw/SghLREFoLBI/AAAAAAAABdY/h0JzqXo3SqY/s1600/%E6%84%9F%E4%BA%BA%E7%9A%84%E7%94%BB%E4%BD%9C.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;真的只有沉重与悲伤吗？我们被这群童真的孩子引领着，还看到了感恩、希望、笑容，甚至与年龄不符的坚强。&lt;br /&gt;&lt;br /&gt;在5•12一周年祭的时候，在全国各界纷纷用各自的方式缅怀逝者的时刻，我们很想通过自己的微薄努力，让更多的人看到这些画，去传递这份感动，去体会灾区孩子的内心。那些幼小的心灵，有阴霾需要去驱散，有伤口需要去抚平，却总是美丽真诚。&lt;br /&gt;&lt;br /&gt;从今天起，在最为便捷的网络平台上，谷歌会把孩子们的画作直接展现在网友面前，并同时展开“让音乐传递你我祝福”的5•12专题纪念活动，请网友们为这些画作配上声音，用歌曲为孩子们提供祝福与安慰。姚基金则会把网友们挑选出的歌曲收录在音乐播放器中，转交给那些可爱的小作者们。&lt;br /&gt;&lt;br /&gt;我们相信，当孩子们的画作和无数网友的祝福在网络上传播的时候，网络真正联结的应该是每一个人的心灵。作为大人，我们会记住我们的责任，我们会记住5•12的举国同悲，我们不会忘记那些逝去的同胞，我们不会忘记帮助灾区的孩子们坚强长大。5•12一周年祭的时候，我们愈发确认：泱泱中华，总能共渡时艰。&lt;br /&gt;&lt;br /&gt;&lt;span&gt;走进孩子们的心灵  了解画作详情：&lt;/span&gt;&lt;a href="http://www.google.cn/music/512" target="_blank"&gt;g.cn/music/512&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;姚明送给孩子们的画：&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_phpN_dG8S_I/SgkCwowS5qI/AAAAAAAAAMc/zRSZ49CkIFU/s1600-h/%25E9%25A6%2596%25E9%25A1%25B5%25E9%2593%25BE%25E6%258E%25A5%25E5%259B%25BE%25E7%2589%2587jpg.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 221px;" src="http://4.bp.blogspot.com/_phpN_dG8S_I/SgkCwowS5qI/AAAAAAAAAMc/zRSZ49CkIFU/s320/%25E9%25A6%2596%25E9%25A1%25B5%25E9%2593%25BE%25E6%258E%25A5%25E5%259B%25BE%25E7%2589%2587jpg.jpg" alt="" id="BLOGGER_PHOTO_ID_5334798268194023074" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-5558775806250990176?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/5558775806250990176/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=5558775806250990176' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/5558775806250990176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/5558775806250990176'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/30.html' title='姚明、李开复:30幅画 读懂灾区孩子的内心'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hk4GrggD0hw/SghLREFoLBI/AAAAAAAABdY/h0JzqXo3SqY/s72-c/%E6%84%9F%E4%BA%BA%E7%9A%84%E7%94%BB%E4%BD%9C.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-1823363980833025409</id><published>2009-05-11T15:55:00.000+08:00</published><updated>2009-05-11T15:56:15.521+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TheWorld 浏览器 Tor 代理'/><title type='text'>TheWorld中如何使用Tor做代理</title><content type='html'>　　在TheWorld 2.0中，工具菜单－代理服务器－设置代理服务器&lt;br /&gt;　　然后在代理列表中输入如下内容 &lt;br /&gt;　　127.0.0.1:9050@Socks#Tor&lt;br /&gt;　　然后点击应用&lt;br /&gt;　　 &lt;br /&gt;　　然后在工具菜单－代理服务器菜单，会看到刚才输入的这条内容，勾选它&lt;br /&gt;　　 &lt;br /&gt;　　运行Tor，当Tor初始化完毕后，TheWorld中的浏览就都用Tor做代理了&lt;br /&gt;　　&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-1823363980833025409?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/1823363980833025409/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=1823363980833025409' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/1823363980833025409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/1823363980833025409'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/theworldtor.html' title='TheWorld中如何使用Tor做代理'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-3762935684472646307</id><published>2009-05-10T21:08:00.000+08:00</published><updated>2009-05-10T21:09:47.117+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='网络围绕人'/><title type='text'>Mobile2.0 手持设备未来的未来：Push everything to the same destination</title><content type='html'>[kkk]&lt;br /&gt;&lt;br /&gt;Mobile2.0 手持设备未来的未来：Push everything to the same destination&lt;br /&gt;&lt;br /&gt;手机的未来，或者称为Mobile1.0，已无疑问：人手中的机器，围绕网络。&lt;br /&gt;&lt;br /&gt;所以要随时在线，要更好的浏览器，要整合网络服务。&lt;br /&gt;&lt;br /&gt;Apple，RIM，Palm，甚至Google，都在这条道上一路狂奔。&lt;br /&gt;&lt;br /&gt;有悬念的是，未来的未来呢（Mobile2.0）？&lt;br /&gt;&lt;br /&gt;我觉得至少应该做到下面两件事：&lt;br /&gt;1 push everything&lt;br /&gt;2 push to the same destination&lt;br /&gt;&lt;br /&gt;1 Push everything&lt;br /&gt;&lt;br /&gt;EVERYTHING！不仅仅是Email。&lt;br /&gt;&lt;br /&gt;RSS有更新了？Push!&lt;br /&gt;论坛参与的帖子有回复了？Push!&lt;br /&gt;发的blog有评论了？Push!&lt;br /&gt;Flickr上好友上新片子了？Push!&lt;br /&gt;&lt;br /&gt;简而言之，所有你关注的地方，有更新，有Push。&lt;br /&gt;&lt;br /&gt;重点在于EVERYTHING。全面的监视能带来令人享受的快感。类似用BB全面掌控你的对外联系（Pushmail+mms+sms+电话。不过IM仍然是是漏网之鱼）。所以，不用记住常去的论坛，不用隔一段时间去看看你发的帖子，你关注的一切，尽在掌握。&lt;br /&gt;&lt;br /&gt;互联网的地图上，不再有迷雾。视力所及当然清晰，除此之外，是真正的漆黑。两可的“不知道”变成了确定的“没有”。因为你知道，如果发生了什么，一定有Push。&lt;br /&gt;&lt;br /&gt;你将有更多的时间和经历去打打球，逗逗小孩，同时，更高效率的利用网络交流。&lt;br /&gt;&lt;br /&gt;2 push to the same destination&lt;br /&gt;其实，Push Everything现在就可以。RSS Reader算半个Push。（定期Pull更新回来）。Twitter/Facebook/MSN Space等等的客户端，也可以用类似的办法监视更新。&lt;br /&gt;但手机后台同时开一大堆客户端（IM，Blog，micro Blog），每个软件单独Push，对稳定的威胁不论，用户本身的迷惑更加致命。&lt;br /&gt;&lt;br /&gt;假设你关心Android新机有没有触摸屏，记得有关于他的消息Push到手机上了。闲下来要看看的时候，去UCweb找Push消息？或者Gravity？这种选择，对用户是无用的负担。讨论是在Twitter上或者ifanr的BBS上，本来不重要。&lt;br /&gt;&lt;br /&gt;理想的情况下，所有Push过来的消息，都应该汇集到一个地方：Inbox。&lt;br /&gt;他接收和管理所有Push消息。提供按时间，来源，keyword等元素过滤的功能。几个小时前收到的消息，那么往下翻翻。Push消息放的久了？那么搜一搜。&lt;br /&gt;找到关于Android新机触屏讨论的更新消息，Inbox中点开好了。他去启动UCweb或者Gravity，无所谓。&lt;br /&gt;&lt;br /&gt;从用户出发，关注内容的方式，对比一堆客户端，对于手机资源的浪费最小，学习成本最低，用户的时间和精力，全部集中于关注的内容上。&lt;br /&gt;&lt;br /&gt;其实，上面的东西不是我的原创。多少年前，GTD这本书里面，就把这个概念阐述的非常清晰了。收集各种事情的Inbox。强调完整而集中。不是针对手机和网络而已。&lt;br /&gt;在手机上，RIM中途半端的做了些，就已经让人爱不释手了。如果有厂家把Push Everything to the same destination实现，相信Mobile2.0将会到来：&lt;br /&gt;&lt;br /&gt;人不再围绕网络。。。。&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: sans-serif; font-size: 14px; border-collapse: collapse; color: rgb(17, 17, 17); line-height: 22px; "&gt;&lt;img src="http://farm4.static.flickr.com/3630/3499355666_3a3f8a15aa.jpg?v=0" onload="thumbImg(this)" alt="" width="421" height="500" style="word-wrap: break-word; line-height: normal; " /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;网络围绕人。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mobile2.0&lt;br /&gt;&lt;br /&gt;本主题由 streetsmart 于 2009-4-26 11:41 加入精华&lt;br /&gt;收藏分享评分&lt;br /&gt;http://twitter.com/newkhonsou&lt;br /&gt;http://newkhonsou.spaces.live.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-3762935684472646307?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/3762935684472646307/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=3762935684472646307' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3762935684472646307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3762935684472646307'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/mobile20-push-everything-to-same.html' title='Mobile2.0 手持设备未来的未来：Push everything to the same destination'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-2940096990880307794</id><published>2009-05-10T20:14:00.000+08:00</published><updated>2009-05-10T20:17:07.720+08:00</updated><title type='text'>脚本分享：关闭新标签页的快速拨号</title><content type='html'>Chrome浏览器每次开启新标签页之后，都会出现类似于Opera的快速拨号功能，也就是显示你当前访问最多的网页，虽然这个功能很好，但是有一些用户却不喜欢，现在已经有了脚本可以实现关闭快速拨号的方法。当然，还是使用user scripts的方式&lt;br /&gt;&lt;br /&gt;1、在Chrome.exe 快捷方式后面添加启动参数--enable-user-scripts，开启user script&lt;br /&gt;&lt;br /&gt;2、在Chrome安装目录\user data\default\新建一个名为user scripts的文件夹&lt;br /&gt;&lt;br /&gt;3、将以下代码保存为NoSpeedDial.user.js，放到user scripts文件夹内。&lt;br /&gt;&lt;br /&gt;代码：&lt;br /&gt;复制内容到剪贴板&lt;br /&gt;代码:&lt;br /&gt;// ==UserScript==&lt;br /&gt;// @run-at document-start&lt;br /&gt;// @name NoSpeedDial&lt;br /&gt;// @author Charles&lt;br /&gt;// @description Start Chrome and open each new tab with a clean blank page&lt;br /&gt;// @namespace http://www.adsweep.org/NoSpeedDial.user.js&lt;br /&gt;// @version 1.0&lt;br /&gt;// ==/UserScript==&lt;br /&gt;&lt;br /&gt;if(document.location.href=='chrome-ui://newtab/'){&lt;br /&gt;        var countTries=0;&lt;br /&gt;        function checkDOM(){&lt;br /&gt;                if(countTries&lt;100){&lt;br /&gt;                        if(document.getElementsByTagName("BODY")[0]){&lt;br /&gt;                                document.getElementsByTagName("BODY")[0].style.display='none';&lt;br /&gt;                        } else {&lt;br /&gt;                                countTries++;&lt;br /&gt;                                window.setTimeout(checkDOM,1);&lt;br /&gt;                        }&lt;br /&gt;                }&lt;br /&gt;        }&lt;br /&gt;        checkDOM();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;代码说明：&lt;br /&gt;1、这个只是隐藏了BODY内的内容，不是彻底的办法。&lt;br /&gt;2、15378以后版本需要修改“chrome-ui://”为“chrome://”方可。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-2940096990880307794?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/2940096990880307794/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=2940096990880307794' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2940096990880307794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2940096990880307794'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_10.html' title='脚本分享：关闭新标签页的快速拨号'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-3123620358952572075</id><published>2009-05-10T18:34:00.002+08:00</published><updated>2009-05-10T20:07:21.291+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><title type='text'>彻底转移chrome用户目录</title><content type='html'>彻底转移chrome用户目录&lt;br /&gt;&lt;br /&gt;chrome总是安装在C盘，用户目录也在C盘，但我喜欢把用户目录放在其他盘，看了网友贴的方法，在快捷方式里增加一个参数：&lt;br /&gt;--User-data-dir=F:\\ChromeData&lt;br /&gt;就可以把目录转移，但如果通过其他连接打开浏览器的时候，比如在QQ上点击邮箱的图标时，自动打开的Chrome的用户目录还在C盘，只有通过桌面上的快捷方式打开时，才会在F盘，为了解决这个问题，我修改了注册表，彻底转移了用户目录，把注册表文件贴给大家参考一下：&lt;br /&gt;&lt;br /&gt;Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\Applications\chrome.exe\shell\open\command]&lt;br /&gt;@="\"C:\\Documents and Settings\\xiaom\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --User-data-dir=F:\\ChromeData -- \"%1\""&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command]&lt;br /&gt;@="\"C:\\Documents and Settings\\xiaom\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --User-data-dir=F:\\ChromeData -- \"%1\""&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\ftp\shell\open\command]&lt;br /&gt;@="\"C:\\Documents and Settings\\xiaom\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --User-data-dir=F:\\ChromeData -- \"%1\""&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\http\shell\open\command]&lt;br /&gt;@="\"C:\\Documents and Settings\\xiaom\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --User-data-dir=F:\\ChromeData -- \"%1\""&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\https\shell\open\command]&lt;br /&gt;@="\"C:\\Documents and Settings\\xiaom\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --User-data-dir=F:\\ChromeData -- \"%1\""&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Classes\ChromeHTML\shell\open\command]&lt;br /&gt;@="\"C:\\Documents and Settings\\xiaom\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --User-data-dir=F:\\ChromeData -- \"%1\""&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Classes\ftp\shell\open\command]&lt;br /&gt;@="\"C:\\Documents and Settings\\xiaom\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --User-data-dir=F:\\ChromeData -- \"%1\""&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Classes\http\shell\open\command]&lt;br /&gt;@="\"C:\\Documents and Settings\\xiaom\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --User-data-dir=F:\\ChromeData -- \"%1\""&lt;br /&gt;&lt;br /&gt;[HKEY_CURRENT_USER\Software\Classes\https\shell\open\command]&lt;br /&gt;@="\"C:\\Documents and Settings\\xiaom\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --User-data-dir=F:\\ChromeData -- \"%1\""&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\chrome.exe\shell\open\command]&lt;br /&gt;@="\"C:\\Documents and Settings\\xiaom\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe\" --User-data-dir=F:\\ChromeData -- \"%1\""&lt;br /&gt;&lt;br /&gt;另存为REG文件导入即可，记得修改参数中的F:\\ChromeData和C:\\Documents and Settings\\xiaom\\改为你的实际目录&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;把注册表文件打包了&lt;a href="http://dl.getdropbox.com/u/651928/UserData.rar"&gt;UserData.rar&lt;/a&gt;，下载附件后，把REG文件的参数修改一下就可以导入了&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-3123620358952572075?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/3123620358952572075/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=3123620358952572075' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3123620358952572075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3123620358952572075'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/chrome.html' title='彻底转移chrome用户目录'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-1738367272451539305</id><published>2009-05-08T22:26:00.008+08:00</published><updated>2009-05-15T13:10:00.826+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='有道难题'/><title type='text'>NetEase Youdao Nanti PWND! [Spoiler]</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 20px; font-family:sans-serif;font-size:12px;"&gt;&lt;div class="date" style="height: 50px; width: 45px; background-image: url(http://utheme.yo2cdn.com/wp-content/user_themes/74/7487/images/calendar.gif); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: initial; font: normal normal normal 22px/normal Arial, Helvetica, sans-serif; color: rgb(102, 102, 102); text-align: center; padding-top: 0px; padding-right: 2px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; float: left; background-position: initial initial; "&gt;06&lt;/div&gt;&lt;div class="title" style="float: left; margin-left: 10px; width: 438px; "&gt;&lt;h2 style="color: rgb(51, 51, 51); margin-top: 3px; margin-right: 0px; margin-bottom: 2px; margin-left: 0px; padding-bottom: 4px; font: normal normal normal 150%/100% 'Lucida Grande', Arial, sans-serif; border-bottom-style: dotted; border-bottom-width: 1px; border-bottom-color: rgb(204, 204, 204); "&gt;&lt;a href="http://initiative.yo2.cn/archives/639837" rel="bookmark" title="Permanent Link to NetEase Youdao Nanti PWND! [Spoiler]" style="color: rgb(51, 51, 51); text-decoration: none; "&gt;NetEase&lt;/a&gt;&lt;/h2&gt;&lt;h2 style="color: rgb(51, 51, 51); margin-top: 3px; margin-right: 0px; margin-bottom: 2px; margin-left: 0px; padding-bottom: 4px; font: normal normal normal 150%/100% 'Lucida Grande', Arial, sans-serif; border-bottom-style: dotted; border-bottom-width: 1px; border-bottom-color: rgb(204, 204, 204); "&gt;&lt;a href="http://initiative.yo2.cn/archives/639837" rel="bookmark" title="Permanent Link to NetEase Youdao Nanti PWND! [Spoiler]" style="color: rgb(51, 51, 51); text-decoration: none; "&gt; Youdao Nanti PW&lt;/a&gt;&lt;/h2&gt;&lt;h2 style="color: rgb(51, 51, 51); margin-top: 3px; margin-right: 0px; margin-bottom: 2px; margin-left: 0px; padding-bottom: 4px; font: normal normal normal 150%/100% 'Lucida Grande', Arial, sans-serif; border-bottom-style: dotted; border-bottom-width: 1px; border-bottom-color: rgb(204, 204, 204); "&gt;&lt;a href="http://initiative.yo2.cn/archives/639837" rel="bookmark" title="Permanent Link to NetEase Youdao Nanti PWND! [Spoiler]" style="color: rgb(51, 51, 51); text-decoration: none; "&gt;ND! [Spoiler]&lt;/a&gt;&lt;/h2&gt;&lt;div class="postdata"  style=" color: rgb(153, 153, 153); font-size:11px;"&gt;&lt;span class="category"  style="background-image: url(http://utheme.yo2cdn.com/wp-content/user_themes/74/7487/images/mini-category.gif); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- padding-left: 18px; float: left; background-position: initial initial; color:initial;"&gt;&lt;a href="http://initiative.yo2.cn/archives/category/hacks" title="查看 Hacks 的全部文章" rel="category tag" style="color: rgb(153, 153, 153); text-decoration: none; "&gt;Hacks&lt;/a&gt;, &lt;a href="http://initiative.yo2.cn/archives/category/dhtml" title="查看 dHTML 的全部文章" rel="category tag" style="color: rgb(153, 153, 153); text-decoration: none; "&gt;dHTML&lt;/a&gt;&lt;/span&gt;&lt;span class="comments"  style="background-image: url(http://utheme.yo2cdn.com/wp-content/user_themes/74/7487/images/mini-comment.gif); background-repeat: no-repeat; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background- padding-left: 18px; float: right; background-position: initial initial; color:initial;"&gt;&lt;a href="http://initiative.yo2.cn/archives/639837#comments" title="NetEase Youdao Nanti PWND! [Spoiler] 上的评论" style="color: rgb(153, 153, 153); text-decoration: none; "&gt;15 Comments »&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="entry" style="padding-top: 10px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; clear: both; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "&gt;Saw &lt;a href="http://sr.ju690.com/meme/item/24407" target="_blank" style="color: rgb(94, 175, 215); text-decoration: none; "&gt;an interesting puzzle&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "&gt;, blogging about it in English is &lt;em&gt;not&lt;/em&gt; &lt;strong&gt;zhuangbility&lt;/strong&gt;, but to avoid n00b finding solutions too easily via search engines.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "&gt;&lt;img src="http://2.bp.blogspot.com/_phpN_dG8S_I/Sgz5EHWH-jI/AAAAAAAAAMk/AFkLFeJGNK4/s400/1.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 363px; height: 400px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5335913507613833778" /&gt;&lt;/p&gt;&lt;ol style="margin-top: 5px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-left: 20px; "&gt;&lt;li&gt;Sniff&lt;/li&gt;&lt;li&gt;No packets transfered when click 'submit', so all answers must be downloaded somewhere to client&lt;/li&gt;&lt;li&gt;Firebug analyze URL requests &amp;amp; responses&lt;/li&gt;&lt;li&gt;Decompiled all .swf files, nothing found&lt;/li&gt;&lt;li&gt;Found it's using PHP-RPC&lt;/li&gt;&lt;li&gt;Tried &lt;a href="http://www.phprpc.org/zh_CN/docs/" target="_blank" style="color: rgb(68, 161, 208); text-decoration: none; "&gt;phprpc-python&lt;/a&gt; but didn't work&lt;/li&gt;&lt;li&gt;Worked out puzzle 2. answer is &lt;strong&gt;bomb&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Dumped all browser memory&lt;/li&gt;&lt;li&gt;Search for keyword &lt;strong&gt;bomb&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;Got all answers to 15 questions&lt;/li&gt;&lt;li&gt;Copy, paste &amp;amp; submit all the right answers, but nothing happend, so just blogging about it &lt;a href="http://initiative.yo2.cn/archives/639837" style="color: rgb(94, 175, 215); text-decoration: none; "&gt;http://initiative.yo2.cn/archives/639837&lt;/a&gt;&lt;/li&gt;&lt;li&gt;???&lt;/li&gt;&lt;li&gt;Profit!&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "&gt;有道居然用PHPRPC把所有答案加密了。哼哼。任何加密都挡不住内存dump大法。&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "&gt;So, here's the answers:&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "&gt;&lt;a href="http://twitter.com/ripleyhu/status/1717319409" target="_blank" style="color: rgb(68, 161, 208); text-decoration: none; "&gt;以下是剧透，丧失游戏乐趣后果自负&lt;/a&gt;，没有自己动脑筋思考的同学请不要手贱，报名参加真正的TopCoder比赛吧：&lt;a href="http://www.youdao.com/nanti/apply.php" target="_blank" style="color: rgb(94, 175, 215); text-decoration: none; "&gt;http://www.youdao.com/nanti/apply.php&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "&gt;&lt;code  style="color: black; background- color:black;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:10px;"&gt;&lt;data radius="220" a="320" b="170" skey="youdao"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:10px;"&gt;&lt;span class="Apple-style-span"  style="color:#FFFFFF;"&gt;&lt;data radius="220" a="320" b="170" skey="youdao"&gt;&lt;/data&gt;&lt;/span&gt;&lt;/span&gt;&lt;/data&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;code  style="color: black; background- color:black;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:10px;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:10px;"&gt;&lt;span class="Apple-style-span"  style="color:#FFFFFF;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0);  font-size:10px;"&gt;&lt;data radius="220" a="320" b="170" skey="youdao"&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="color:#FFFFFF;"&gt;&lt; ?xml version="1.0" encoding="utf-8" ?&gt;&lt;br /&gt;&lt; radius="220" a="320" b="170" skey="youdao"&gt;&lt;br /&gt;&lt; src="questions/q1oioqzvveoalz.fa.swf" answer="o" lowcase="true" visible="true"&gt;一样的人物&lt;br /&gt;&lt; src="questions/q80afzfdqrezxc0-rwq.f0.swf" answer="bomb" lowcase="true" visible="true"&gt;湖边的回忆&lt;br /&gt;&lt; src="questions/q4098azvhlaql.f-fq53.swf" answer="0441" visible="true"&gt;危险之地&lt;br /&gt;&lt; src="questions/q3zlllweafl342laozl.swf" answer="@($" visible="true" locked="true"&gt;火星文&lt;br /&gt;&lt; src="questions/q5zpaqa.eop2-f-qe4.swf" answer="也可能" visible="true" locked="true"&gt;博客中的线索&lt;br /&gt;&lt; src="questions/q6pkltix.04.-af.swf" answer="本机地址" visible="true" locked="true"&gt;IT码农的留言&lt;br /&gt;&lt; src="questions/q70a9fdalqrexc65o.vz.swf" answer="search engine" lowcase="true" visible="true" locked="true"&gt;曲径通幽&lt;br /&gt;&lt; src="questions/q909qalzxovaltazt-fq.fq.swf" answer="为" visible="true" locked="true"&gt;手机词典的帮助&lt;br /&gt;&lt; src="questions/q10090zvalzp-f.4.swf" answer="3624087915" visible="true" locked="true"&gt;古诗中的数字&lt;br /&gt;&lt; src="questions/q2098alzraz.5.ao.swf" answer="12355331" visible="true" locked="true"&gt;彩铃包月&lt;br /&gt;&lt; src="questions/q1109zgflqre0f-aw.w2.swf" answer="2月18日||二月十八日" visible="true" locked="true"&gt;和智玲的聊天&lt;br /&gt;&lt; src="questions/q120z0fda2r.z0f-a2.swf" answer="cctv" lowcase="true" visible="true" locked="true"&gt;黑客是怎样炼成的&lt;br /&gt;&lt; src="questions/q13-zf0w2rzlf0.f43.swf" answer="圆周率||祖冲之" visible="true" open="15" locked="true"&gt;Morse的登录&lt;br /&gt;&lt; src="questions/q1409falz-fa.2aof.swf" answer="0731-5310163" visible="true" locked="true"&gt;错误的号码&lt;br /&gt;&lt; src="questions/q160z-af.4er0zafwe.swf" answer="LOVE" visible="true" locked="true"&gt;数学之美&lt;br /&gt;&lt; src="questions/q170z.gzzf-32zflgpqert.swf" answer="ONLMK" lowcase="true" visible="false"&gt;残破的画卷&lt;br /&gt;&lt; /data&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/data&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "&gt;Seems that there's even a hidden puzzle:&lt;a href="http://www.youdao.com/nanti/mi/questions/q170z.gzzf-32zflgpqert.swf" target="_blank" style="color: rgb(68, 161, 208); text-decoration: none; "&gt;http://www.youdao.com/nanti/mi/questions/q170z.gzzf-32zflgpqert.swf&lt;/a&gt; but I haven't figured out how to invoke it (yet) . Perhaps using some .swf hook :D&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "&gt;转载请注明出处 &lt;a href="http://initiative.yo2.cn/archives/639837" style="color: rgb(94, 175, 215); text-decoration: none; "&gt;http://initiative.yo2.cn/archives/639837&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-1738367272451539305?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/1738367272451539305/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=1738367272451539305' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/1738367272451539305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/1738367272451539305'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/netease-youdao-nanti-pwnd-spoiler.html' title='NetEase Youdao Nanti PWND! [Spoiler]'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_phpN_dG8S_I/Sgz5EHWH-jI/AAAAAAAAAMk/AFkLFeJGNK4/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-3783156770332029486</id><published>2009-05-08T22:23:00.001+08:00</published><updated>2009-05-08T22:23:50.797+08:00</updated><title type='text'>仔细看看，就会发现这样找漏洞很有意思</title><content type='html'>仔细看看，就会发现这样找漏洞很有意思 &lt;br /&gt;【调试环境】：Win2000、Ollydbg1.10、ExeScope &lt;br /&gt;&lt;br /&gt;【逆向原因】：我有一舍友，十分精于扫雷游戏，闲暇之时与其比试，总是败多胜少，遂逆 &lt;br /&gt;&lt;br /&gt;向一热键作弊（本文改成了菜单）功能，后常胜 ^_^ 。今日无事，逆向菜 &lt;br /&gt;&lt;br /&gt;文一篇，希望能对刚入门的菜鸟朋友们有些许帮助。 &lt;br /&gt;&lt;br /&gt;【逆向过程】： &lt;br /&gt;&lt;br /&gt;———————————————————————————————————————— &lt;br /&gt;一、分析 &lt;br /&gt;&lt;br /&gt;1、弄清程序的流程，将自己的处理代码，挂在消息响应流程中。 &lt;br /&gt;&lt;br /&gt;// 用DefWindowProcW下断，然后向上翻看，即可看到消息响应流程 &lt;br /&gt;&lt;br /&gt;// 点击菜单后，会来到如下代码处 &lt;br /&gt;&lt;br /&gt;010019AD &gt; \8B4D 10 mov ecx, dword ptr ss:[ebp+10] ; 点击的菜单ID &lt;br /&gt;010019B0 . 0FB7C1 movzx eax, cx &lt;br /&gt;010019B3 . 3D 0B020000 cmp eax, 20B &lt;br /&gt;010019B8 . 7F 76 jg short winmine.01001A30 ; 大于 0x20B 跳到后边 &lt;br /&gt;010019BA . 3D 09020000 cmp eax, 209 &lt;br /&gt;010019BF . 7D 2D jge short winmine.010019EE &lt;br /&gt;010019C1 . 2D FE010000 sub eax, 1FE &lt;br /&gt;010019C6 . 74 1C je short winmine.010019E4 &lt;br /&gt;010019C8 . 48 dec eax &lt;br /&gt;010019C9 . 48 dec eax &lt;br /&gt;010019CA . 0F85 7C030000 jnz winmine.01001D4C &lt;br /&gt;010019D0 . 33FF xor edi, edi ; Case 200 of switch 010019B3 &lt;br /&gt;010019D2 . 57 push edi ; /ShowState =&gt; SW_HIDE &lt;br /&gt;010019D3 . FF35 A8520001 push dword ptr ds:[10052A8] ; |hWnd = NULL &lt;br /&gt;010019D9 . FF15 EC100001 call dword ptr ds:[&lt;&amp;USER32.ShowWi&gt;; \ShowWindow &lt;br /&gt;010019DF . E9 A2000000 jmp winmine.01001A86 &lt;br /&gt;010019E4 &gt; E8 26190000 call winmine.0100330F ; Case 1FE of switch 010019B3 &lt;br /&gt;010019E9 . E9 5E030000 jmp winmine.01001D4C &lt;br /&gt;010019EE &gt; 8D81 F7FDFFFF lea eax, dword ptr ds:[ecx-209] ; Cases 209,20A,20B of switch 010019B3 &lt;br /&gt;010019F4 . 66:A3 C0520001 mov word ptr ds:[10052C0], ax &lt;br /&gt;010019FA . 0FB7C0 movzx eax, ax &lt;br /&gt;010019FD . 8D0440 lea eax, dword ptr ds:[eax+eax*2] &lt;br /&gt;01001A00 . C1E0 02 shl eax, 2 &lt;br /&gt;01001A03 . 8B88 28500001 mov ecx, dword ptr ds:[eax+100502&gt; &lt;br /&gt;01001A09 . 890D C4520001 mov dword ptr ds:[10052C4], ecx &lt;br /&gt;01001A0F . 8B88 2C500001 mov ecx, dword ptr ds:[eax+100502&gt; &lt;br /&gt;01001A15 . 8B80 30500001 mov eax, dword ptr ds:[eax+100503&gt; &lt;br /&gt;01001A1B . 890D C8520001 mov dword ptr ds:[10052C8], ecx &lt;br /&gt;01001A21 . A3 CC520001 mov dword ptr ds:[10052CC], eax &lt;br /&gt;01001A26 . E8 E4180000 call winmine.0100330F &lt;br /&gt;01001A30 &gt; \B9 4E020000 mov ecx, 24E ;大于 0x20B 跳到这里 &lt;br /&gt;01001A35 &gt; 3BC1 cmp eax, ecx &lt;br /&gt;01001A37 . 0F8F D3000000 jg winmine.01001B10 &lt;br /&gt;01001A3D . 0F84 C7000000 je winmine.01001B0A &lt;br /&gt;01001A43 . 2D 0C020000 sub eax, 20C &lt;br /&gt;&lt;br /&gt;根据上边的代码，可知，只要从01001A30处（其它地方也可以）跳到我们添加的代码中，就可以对消息进行响应了。 &lt;br /&gt;&lt;br /&gt;2、如何实现作弊？ &lt;br /&gt;&lt;br /&gt;// 开局，点击一下，到如下代码处，（第一次用PlaySoundW下断，很容易就能来到这里） &lt;br /&gt;&lt;br /&gt;01003772 |. 833D F4560001 00 cmp dword ptr ds:[10056F4], 0 ; //开始扫雷了么？ &lt;br /&gt;01003779 |. 6A 01 push 1 &lt;br /&gt;0100377B |. 5B pop ebx &lt;br /&gt;0100377C |. 75 4A jnz short winmine.010037C8 ; 第一点击？ &lt;br /&gt;0100377E |. 833D F0560001 00 cmp dword ptr ds:[10056F0], 0 &lt;br /&gt;01003785 |. 75 41 jnz short winmine.010037C8 &lt;br /&gt;01003787 |. 53 push ebx &lt;br /&gt;01003788 |. E8 ED050000 call winmine.01003D7A &lt;br /&gt;0100378D |. FF05 F0560001 inc dword ptr ds:[10056F0] &lt;br /&gt;01003793 |. E8 1FF4FFFF call winmine.01002BB7 &lt;br /&gt;01003798 |. 6A 00 push 0 ; /Timerproc = NULL &lt;br /&gt;0100379A |. 68 E8030000 push 3E8 ; |Timeout = 1000. ms &lt;br /&gt;0100379F |. 53 push ebx ; |TimerID &lt;br /&gt;010037A0 |. 891D 84510001 mov dword ptr ds:[1005184], ebx ; | &lt;br /&gt;010037A6 |. FF35 A8520001 push dword ptr ds:[10052A8] ; |hWnd = NULL &lt;br /&gt;010037AC |. FF15 6C110001 call dword ptr ds:[&lt;&amp;USER32.SetTim&gt;; \ 设置计时间隔1秒，修改这里进行时间作弊 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// 通过跟踪发现，对相应行、列对应的内存中的一个字节进行变换，变换后的值高位为1（0x80）， &lt;br /&gt;// 表示该位置是雷，GAME OVER, 如果不是雷，则显示该位置的数字 &lt;br /&gt;&lt;br /&gt;01003144 /$ 8B4424 08 mov eax, dword ptr ss:[esp+8] ; 行 &lt;br /&gt;01003148 |. 53 push ebx &lt;br /&gt;01003149 |. 55 push ebp &lt;br /&gt;0100314A |. 8BC8 mov ecx, eax &lt;br /&gt;0100314C |. 56 push esi &lt;br /&gt;0100314D |. 8B7424 10 mov esi, dword ptr ss:[esp+10] ; 列 &lt;br /&gt;01003151 |. C1E1 05 shl ecx, 5 &lt;br /&gt;01003154 |. F68431 00570001 80 test byte ptr ds:[ecx+esi+1005700], 80 ; 是雷么 &lt;br /&gt;0100315C |. 8D9431 00570001 lea edx, dword ptr ds:[ecx+esi+1005700] &lt;br /&gt;01003163 |. 57 push edi &lt;br /&gt;01003164 |. 74 6B je short winmine.010031D1 ; 不是雷，跳 &lt;br /&gt;01003166 |. 833D F4560001 00 cmp dword ptr ds:[10056F4], 0 &lt;br /&gt;0100316D |. 75 55 jnz short winmine.010031C4 &lt;br /&gt;0100316F |. 8B2D 685A0001 mov ebp, dword ptr ds:[1005A68] &lt;br /&gt;01003175 |. 6A 01 push 1 &lt;br /&gt;01003177 |. 58 pop eax &lt;br /&gt;01003178 |. 3BE8 cmp ebp, eax &lt;br /&gt;0100317A |. 7E 70 jle short winmine.010031EC &lt;br /&gt;0100317C |. 8B1D F8560001 mov ebx, dword ptr ds:[10056F8] &lt;br /&gt;01003182 |. BF 20570001 mov edi, winmine.01005720 &lt;br /&gt;01003187 |&gt; 6A 01 /push 1 &lt;br /&gt;01003189 |. 59 |pop ecx &lt;br /&gt;0100318A |. 3BD9 |cmp ebx, ecx &lt;br /&gt;0100318C |. 7E 0B |jle short winmine.01003199 &lt;br /&gt;0100318E |&gt; F60439 80 |/test byte ptr ds:[ecx+edi], 80 &lt;br /&gt;01003192 |. 74 0F ||je short winmine.010031A3 &lt;br /&gt;01003194 |. 41 ||inc ecx &lt;br /&gt;01003195 |. 3BCB ||cmp ecx, ebx &lt;br /&gt;01003197 |.^ 7C F5 |\jl short winmine.0100318E &lt;br /&gt;01003199 |&gt; 40 |inc eax &lt;br /&gt;0100319A |. 83C7 20 |add edi, 20 &lt;br /&gt;0100319D |. 3BC5 |cmp eax, ebp &lt;br /&gt;0100319F |.^ 7C E6 \jl short winmine.01003187 &lt;br /&gt;010031A1 |. EB 49 jmp short winmine.010031EC &lt;br /&gt;010031A3 |&gt; FF7424 18 push dword ptr ss:[esp+18] ; /Arg2 &lt;br /&gt;010031A7 |. C602 0F mov byte ptr ds:[edx], 0F ; | &lt;br /&gt;010031AA |. C1E0 05 shl eax, 5 ; | &lt;br /&gt;010031AD |. 56 push esi ; |Arg1 &lt;br /&gt;010031AE |. 808C08 00570001 80 or byte ptr ds:[eax+ecx+1005700], 80 ; | &lt;br /&gt;010031B6 |. 8D8408 00570001 lea eax, dword ptr ds:[eax+ecx+1005700] ; | &lt;br /&gt;010031BD |. E8 EDFEFFFF call winmine.010030AF ; \winmine.010030AF &lt;br /&gt;010031C2 |. EB 28 jmp short winmine.010031EC &lt;br /&gt;010031C4 |&gt; 6A 4C push 4C &lt;br /&gt;010031C6 |. 50 push eax &lt;br /&gt;010031C7 |. 56 push esi &lt;br /&gt;010031C8 |. E8 53FCFFFF call winmine.01002E20 &lt;br /&gt;010031CD |. 6A 00 push 0 &lt;br /&gt;010031CF |. EB 16 jmp short winmine.010031E7 &lt;br /&gt;// 不是雷跳到这里 &lt;br /&gt;010031D1 |&gt; 50 push eax ; 行 &lt;br /&gt;010031D2 |. 56 push esi ; 列 &lt;br /&gt;010031D3 |. E8 D7FEFFFF call winmine.010030AF ; 显示该位置的数字 &lt;br /&gt;010031D8 |. A1 F4560001 mov eax, dword ptr ds:[10056F4] ; &lt;br /&gt;010031DD |. 3B05 FC560001 cmp eax, dword ptr ds:[10056FC] &lt;br /&gt;010031E3 |. 75 07 jnz short winmine.010031EC ; 雷扫完了么 &lt;br /&gt;010031E5 |. 6A 01 push 1 &lt;br /&gt;010031E7 |&gt; E8 86FDFFFF call winmine.01002F72 ; 游戏成功结束 &lt;br /&gt;010031EC |&gt; 5F pop edi ; 没扫完，继续 &lt;br /&gt;010031ED |. 5E pop esi &lt;br /&gt;010031EE |. 5D pop ebp &lt;br /&gt;010031EF |. 5B pop ebx &lt;br /&gt;010031F0 \. C2 0800 retn 8 &lt;br /&gt;&lt;br /&gt;//根据行、列，调用下面过程计算，内存中的值如果高位是1（0x80）就是雷 &lt;br /&gt;010033E9 /$ 8B4424 08 mov eax, dword ptr ss:[esp+8] //行 &lt;br /&gt;010033ED |. 8B4C24 04 mov ecx, dword ptr ss:[esp+4] //列 &lt;br /&gt;010033F1 |. C1E0 05 shl eax, 5 &lt;br /&gt;010033F4 |. 8D9408 00570001 lea edx, dword ptr ds:[eax+ecx+1005700] //位置 &lt;br /&gt;010033FB |. 8A8408 00570001 mov al, byte ptr ds:[eax+ecx+1005700] &lt;br /&gt;01003402 |. 8AC8 mov cl, al &lt;br /&gt;01003404 |. 83E1 1F and ecx, 1F &lt;br /&gt;01003407 |. 83F9 0D cmp ecx, 0D &lt;br /&gt;0100340A |. 75 05 jnz short winmine.01003411 &lt;br /&gt;0100340C |. 6A 09 push 9 &lt;br /&gt;0100340E |. 59 pop ecx &lt;br /&gt;0100340F |. EB 07 jmp short winmine.01003418 &lt;br /&gt;01003411 |&gt; 83F9 0F cmp ecx, 0F &lt;br /&gt;01003414 |. 75 02 jnz short winmine.01003418 &lt;br /&gt;01003416 |. 33C9 xor ecx, ecx &lt;br /&gt;01003418 |&gt; 24 E0 and al, 0E0 &lt;br /&gt;0100341A |. 0AC1 or al, cl &lt;br /&gt;0100341C |. 8802 mov byte ptr ds:[edx], al &lt;br /&gt;0100341E \. C2 0800 retn 8 &lt;br /&gt;&lt;br /&gt;//根据行、列，将上面过程变换后内存中的值恢复 &lt;br /&gt;01003421 /$ 8B4424 08 mov eax, dword ptr ss:[esp+8] &lt;br /&gt;01003425 |. 8B4C24 04 mov ecx, dword ptr ss:[esp+4] &lt;br /&gt;01003429 |. C1E0 05 shl eax, 5 &lt;br /&gt;0100342C |. 8D9408 00570001 lea edx, dword ptr ds:[eax+ecx+1005700] &lt;br /&gt;01003433 |. 8A8408 00570001 mov al, byte ptr ds:[eax+ecx+1005700] &lt;br /&gt;0100343A |. 8AC8 mov cl, al &lt;br /&gt;0100343C |. 83E1 1F and ecx, 1F &lt;br /&gt;0100343F |. 83F9 09 cmp ecx, 9 &lt;br /&gt;01003442 |. 75 04 jnz short winmine.01003448 &lt;br /&gt;01003444 |. 6A 0D push 0D &lt;br /&gt;01003446 |. EB 06 jmp short winmine.0100344E &lt;br /&gt;01003448 |&gt; 85C9 test ecx, ecx &lt;br /&gt;0100344A |. 75 03 jnz short winmine.0100344F &lt;br /&gt;0100344C |. 6A 0F push 0F &lt;br /&gt;0100344E |&gt; 59 pop ecx &lt;br /&gt;0100344F |&gt; 24 E0 and al, 0E0 &lt;br /&gt;01003451 |. 0AC1 or al, cl &lt;br /&gt;01003453 |. 8802 mov byte ptr ds:[edx], al &lt;br /&gt;01003455 \. C2 0800 retn 8 &lt;br /&gt;&lt;br /&gt;———————————————————————————————————————— &lt;br /&gt;二、逆向 &lt;br /&gt;&lt;br /&gt;1、用ExeScope为Winmine.exe添加一个菜单项：ID=0x259=601（大于0x20B）,Name="过关"。 &lt;br /&gt;&lt;br /&gt;2、在Winmine.exe的消息循环中作如下修改，使自己的添加的菜单选项能够被响应。 &lt;br /&gt;&lt;br /&gt;01001A30 &gt; \B9 4E020000 mov ecx, 24E &lt;br /&gt;01001A35 . 3BC1 cmp eax, ecx &lt;br /&gt;==〉 修改成 &lt;br /&gt;01001A30 /E9 4B2F0000 jmp winmine.01004980 //跳转到自己的处理代码处 &lt;br /&gt;01001A35 . |3BC1 cmp eax, ecx &lt;br /&gt;&lt;br /&gt;3、在01004980处写入如下代码： &lt;br /&gt;&lt;br /&gt;下面的代码是在Winmine.exe中找了一段全为零的地方写入的，也可以添加一个节后写入节中。 &lt;br /&gt;&lt;br /&gt;01004980 3D 58020000 cmp eax, 258 ; &lt;br /&gt;01004985 7F 0A jg short winmine.01004991 ; &gt; 0x258 &lt;br /&gt;01004987 B9 4E020000 mov ecx, 24E ; 恢复原来的代码 &lt;br /&gt;0100498C ^ E9 A4D0FFFF jmp winmine.01001A35 ; 跳回 &lt;br /&gt;01004991 3D 59020000 cmp eax, 259 ; 是否选择了“过关” &lt;br /&gt;01004996 7F 40 jg short winmine.010049D8 ; &gt; 0x259 ？跳 继续处理其它 &lt;br /&gt;// 下面是过关代码 &lt;br /&gt;01004998 B8 01000000 mov eax, 1 ; 双重循环遍历; &lt;br /&gt;0100499D B9 01000000 mov ecx, 1 &lt;br /&gt;010049A2 50 push eax &lt;br /&gt;010049A3 51 push ecx &lt;br /&gt;010049A4 50 push eax &lt;br /&gt;010049A5 51 push ecx &lt;br /&gt;010049A6 50 push eax &lt;br /&gt;010049A7 51 push ecx &lt;br /&gt;010049A8 E8 3CEAFFFF call winmine.010033E9 ; 变换 &lt;br /&gt;010049AD A8 80 test al, 80 ; 是否为雷 &lt;br /&gt;010049AF 75 07 jnz short winmine.010049B8 ; &lt;br /&gt;010049B1 E8 F9E6FFFF call winmine.010030AF ; 不是雷，点开 &lt;br /&gt;010049B6 EB 05 jmp short winmine.010049BD &lt;br /&gt;010049B8 E8 64EAFFFF call winmine.01003421 ; 是雷，恢复 &lt;br /&gt;010049BD 59 pop ecx &lt;br /&gt;010049BE 58 pop eax &lt;br /&gt;010049BF 41 inc ecx ; 列数增1 &lt;br /&gt;010049C0 3B0D CC520001 cmp ecx, dword ptr ds:[10052CC] ; 遍历完该行的所有列？ &lt;br /&gt;010049C6 ^ 7E DA jle short winmine.010049A2 &lt;br /&gt;010049C8 40 inc eax ; 行数增1 &lt;br /&gt;010049C9 3B05 C8520001 cmp eax, dword ptr ds:[10052C8] ; 遍历完所有行？ &lt;br /&gt;010049CF ^ 7E CC jle short winmine.0100499D &lt;br /&gt;010049D1 6A 01 push 1 &lt;br /&gt;010049D3 E8 9AE5FFFF call winmine.01002F72 ; 游戏过关 &lt;br /&gt;010049D8 ^ E9 58D3FFFF jmp winmine.01001D35 ; 返回到原来的消息循环结束处 &lt;br /&gt;&lt;br /&gt;在OD中写入代码后，复制到可执行文件，保存即可！ &lt;br /&gt;&lt;br /&gt;4、运行Winmine.exe,选择菜单中的“过关”即可！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-3783156770332029486?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/3783156770332029486/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=3783156770332029486' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3783156770332029486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3783156770332029486'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_8484.html' title='仔细看看，就会发现这样找漏洞很有意思'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-66070639298705585</id><published>2009-05-08T22:14:00.001+08:00</published><updated>2009-05-08T22:22:41.312+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='扫雷秘技'/><title type='text'>扫雷秘技</title><content type='html'>扫雷秘技&lt;br /&gt;　　以前经常和同学比赛扫雷，很是具有挑战性，相信很多人都玩过吧。我第一次和同学玩扫雷的时候，简直把高级当成了不可能完成的任务，分析半天，还是出错。今天一个偶然的机会发现了这个秘技，挺好玩的，放在这里吧&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;今天要给大家介绍一个超级厉害的破解方法，所有版本的都适用，方法如下：&lt;br /&gt;&lt;br /&gt;1、启动“扫雷”游戏，在游戏界面上输入："xyzzy"5个字母，然后按shift键，就启动了破解；&lt;br /&gt;&lt;br /&gt;2、鼠标在“扫描”上的方格上移动，注意看你的“扫雷”界面最左上角（注：有的，一般是NT内核的操作系统话，比如win xp，是在“桌面”的最左上角，而不是游戏界面）一旦出现个“黑点”，就表明当前方格下是地雷。如果没出现个黑点的话，说明就是安全的，你就放心的鼠标左键按下去吧！&lt;br /&gt;&lt;br /&gt;PS. 连这样一个小游戏微软都留了后门，由此推知……大家还是好自为之。&lt;br /&gt;&lt;br /&gt;　　我的电脑和上面的描述有点儿差别，当启动作弊之后，是在电脑屏幕的左上角出现了一个白点儿，当有这个白点的时候，就是安全的，如果没有，呵呵，鼠标下面就是地雷。&lt;br /&gt;&lt;br /&gt;　　快点儿拿去骗不明所以的同事同学吧，呵呵，“神了”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-66070639298705585?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/66070639298705585/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=66070639298705585' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/66070639298705585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/66070639298705585'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_4339.html' title='扫雷秘技'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-4158714814843042535</id><published>2009-05-08T22:03:00.001+08:00</published><updated>2009-05-08T22:12:11.675+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dump 转存'/><title type='text'>浅谈脱壳中的Dump技术</title><content type='html'>标题：浅谈脱壳中的Dump技术&lt;br /&gt;http://tech.ddvip.com/2007-01/116879008718099.html&lt;br /&gt;作者：Lenus Margin&lt;br /&gt;摘要：&lt;br /&gt;本文首先指出了DUMP技术的原理，并尝试着编写一个实现于LordPE的基本功能的dump，并针对dump的编写一层一层的突出了dump过程中所注意的事项，对其加以不断的完善；讨论了一般的anti-dump的原理和解决的办法，用实践说明在脱壳中dump的技巧。最后比较了几种常用的dump工具的优劣。&lt;br /&gt;关键词：&lt;br /&gt;    Dump,PEB,Anti-dump,OEP&lt;br /&gt;Abstract:&lt;br /&gt;This paper first point out the principle of the dump skills, and try to write a program to achieve the fundamental function which the LordPE’s dump can do. And pointing to the attention of the writing, I improve my dump program on and on. I try to discuss the normal principle of anti-dump and the way to solve it. Using the example to explain the dump skill in the process of unpacking. Finally , I compare some of usual dump tools.&lt;br /&gt;&lt;br /&gt;Keywords:&lt;br /&gt;Dump, PEB,Anti-dump,OEP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;目录:&lt;br /&gt;1．前言  （3）&lt;br /&gt;2．	第一章：Dump的原理  （4）&lt;br /&gt;2.1分析&lt;br /&gt;2.2 实现&lt;br /&gt;2.3试验&lt;br /&gt;2.4小结&lt;br /&gt;3．	第二章：Dump程序的改进（7）&lt;br /&gt;3.1获取Imageofsize&lt;br /&gt;3.2对齐节表&lt;br /&gt;3.3小结&lt;br /&gt;4．	第三章：Anti-dump的原理（10）&lt;br /&gt;4.1纠正imagesize&lt;br /&gt;4.2其他anti方式&lt;br /&gt;4.3实战&lt;br /&gt;4.4小结&lt;br /&gt;5．	第四章：Dump的位置（21）&lt;br /&gt;5.1在OEP处dump&lt;br /&gt;5.2不在OEP处dump&lt;br /&gt;5.3他山之石&lt;br /&gt;5.4实战&lt;br /&gt;5.4小结&lt;br /&gt;6．	第五章：Dump工具的比较（29）  &lt;br /&gt;6.1比较&lt;br /&gt;6.2小结&lt;br /&gt;7．	结论（32）&lt;br /&gt;谢辞 （32）&lt;br /&gt;参考文献（32）&lt;br /&gt;个人简介（32）&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;前言：&lt;br /&gt;    “知者不言，言者不知” &lt;br /&gt;----老子 《道德经》&lt;br /&gt;   你会dump吗？&lt;br /&gt;   你还是只在OEP处dump吗？&lt;br /&gt;   你知道dump的原理吗？&lt;br /&gt;   你遇到过anti-dump的壳吗，你知道如何对付它吗？&lt;br /&gt;   你明白几种dump工具的优劣吗？&lt;br /&gt;   请原谅我，一开始就这么不识趣的抛出了这几个无里头的问题。我记得龙应台说过：正因为我那时什么都不懂，所以才会写下那些文字。我也是一个言者不知的人，这篇文章我将尝试的帮助大家去理解一个dump的原理和在脱壳中dump的技巧，如果这篇文章让你明白了一些东西，那么这篇文章的目的算是达到了。如果你是高手，也不用嘲笑我的无知，毕竟我们都是这么过来的，指出我的错误和不足是我更愿意看到的。&lt;br /&gt;   此篇文章共分为五章。在前三章中，我试图在阐释一些dump的原理，但这需要一些C语言和windows编程的功底。相信这些部分会让很多人头疼。在后面的两章也许你会更加感兴趣，在第四章中我举了三个例子进行说明dump的技巧，而在第五章中我还会针对几种常用的dump工具发表一下自己不成熟的看法。&lt;br /&gt;   好了，带着上面的问题，让我们开始我们的dump之旅。&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;第一章．	Dump的原理&lt;br /&gt;Knowledge is a treasure, but practice is the key to it.&lt;br /&gt;　 &lt;br /&gt;知识是一宝库，而实践就是开启宝库大门的钥匙。&lt;br /&gt;——Fuller&lt;br /&gt;如果说要讲dump的原理，那么我们最简单的办法就是自己写一个象LordPE那样的dump程序。下面我就来详细说明一下，一个dump程序是如何工作的，如何把内存中的数据保存到文件中的。&lt;br /&gt;&lt;br /&gt;一．分析&lt;br /&gt;    对于dump来说，他的英文翻译就是“转存”。也就是说把内存中或者其他的输入转存到另一个位置，当然对于我们现在说的dump就是把内存中运行的PE进程的数据，从内存中抓取出来，然后在用文件的形式保存下来。&lt;br /&gt;&lt;br /&gt;   根据上面的分析我们基本上得到了一个这样的思维。Dump程序要做的事分几个基本的步骤：&lt;br /&gt;1．	在系统中找到目标进程&lt;br /&gt;2．	在进程中确定进程的大小imagesize&lt;br /&gt;3．	把进程中的数据保存到文件&lt;br /&gt;&lt;br /&gt;二.实现&lt;br /&gt;好了，现在我们就可以具体来实现各个部分的功能了。&lt;br /&gt;&lt;br /&gt;1．	在系统中找到目标进程就是实现一个基本的任务管理器的把进程列出的功能。&lt;br /&gt;在这个实现中我们采用了BOOL GetProcessListFunc(HWND hDlg,HWND hWindList)；这个函数里面调用了几个基本的函数：CreateToolhelp32Snapshot，Process32First， Process32Next&lt;br /&gt;这个列出进程的功能就轻松的实现了。（具体的请看我的代码Lenus_dump_1.cpp）&lt;br /&gt;&lt;br /&gt;2．	在进程中确定要dump的大小是一件很有意思的事情，我打算慢慢的讲解寻找这数据的办法，这一节我们先用一个基本的方法。&lt;br /&gt;我们先用一个笨一点的办法，根据PE文件格式可以知道在距离PE文件头（IMAGE_NT_SIGNATURE）0x50的位置是存放imageofsize的地方。所以在int GetSizeOfImage(HWND hDlg,HANDLE hProcess)；这个函数中，我们找到了进程以后打开目标进程，然后用ReadProcessMemory来读取imageofsize就可以了。&lt;br /&gt;在这里我还用BOOL CheckPEFunc(HWND hDlg,HANDLE hProcess)；函数简单的检查了了两个PE文件的标志（IMAGE_DOS_SIGNATURE和IMAGE_NT_SIGNATURE）&lt;br /&gt;3．	在把进程中的数据保存到硬盘的文件的步骤中，我使用了一个比较笨的办法。&lt;br /&gt;首先，我们用LPCTSTR SaveAsFunc(HWND hDlg)；函数把打开一个save as的通用控件，获得要保存的文件名，默认的是dumped.exe。接着，使用前面在获得imageofsize的同时已经用GlobalAlloc函数申请了同样大小的堆空间，把目标进程的数据读到这个空间里面。这里面就有一个空间大小的问题，如果进程过大，我怀疑会申请失败。在这里还有尤其的注意一个地方，就是我们在申请空间的时候用了sizeoffile而不是sizeofimage，这是因为，有的时候sizeofimage的大小并不是一个文件对齐度的大小，而为了让他对齐，我使用下面的算法。&lt;br /&gt;代码：&lt;br /&gt;	if(!(sizeofimage%0x1000))                          //如果是文件对齐度的整数倍的时候就不处理&lt;br /&gt;		sizeoffile=sizeofimage;&lt;br /&gt;	else&lt;br /&gt;		sizeoffile=(sizeofimage/0x1000+1)*0x1000;     //如果不是就增加一个文件对齐度&lt;br /&gt;&lt;br /&gt;     这样就能保证，imageofsize转化为一个具有文件对齐度的数值。&lt;br /&gt;     最后，是使用BOOL CreateDumpFile(HWND hDlg,LPCTSTR Dump_Name,HGLOBAL hMem)；这个函数，这个函数的作用是在磁盘中申请一个文件，把从刚刚读到内存空间的数据又全部的写到磁盘上，所以就用了两个函数CreateFile和WriteFile。&lt;br /&gt;&lt;br /&gt;三.试验&lt;br /&gt;   写好了程序就如下图一样&lt;br /&gt;下面用他来实战使用一下吧&lt;br /&gt;运行用upx压缩过的win98的notepad&lt;br /&gt; &lt;br /&gt;让我把他在oep处dump下来&lt;br /&gt;&lt;br /&gt;嘿嘿，dump下来才发现，图表都没有了。呵呵，这是因为我们没有把相对虚拟地址（RVA）和文件地址对齐（RA）。&lt;br /&gt;科普一下：在文件中要节约空间，把数据紧密的存储在一切，而靠节表在load到内存中的时候，把在文件中的不同数据分别隐射到不空内存空间中，而不足的地方就用0填充。但是当我把这些数据从内存中完完整整的dump下来的时候，我们同样把这些0也dump了出来。所以我们要做的首先应该是调整节表，让他的RA=RVA。这样我们实际上做的就是把RA这个指针移动过了若干个0的空间，从而指向正确的数据。&lt;br /&gt;&lt;br /&gt;下面我们还是用LoadPE打开它，把RA和SIZE修改过来吧！&lt;br /&gt; &lt;br /&gt;这么样，回到桌面刷新一下就会发现图标又回来了吧！&lt;br /&gt;好了，现在运行dumped.exe文件，还是不行的。对了，IAT还没有修复呢，我们停在OEP的时候文件的IAT已经全部释放了出来，而IAT只是对于本计算机的函数地址，每一个计算机都可能不一样。这样我们就要用ImportRECl来重新根据这个IAT地址反向构造一个输入表。OK，使用ImportREC修复了以后就可以运行了，不过dump出来的文件大出了好多。我们可以知道原因了。&lt;br /&gt;1.	因为文件对齐的原因我们把残留的0也dump出来了。&lt;br /&gt;2.	因为使用ImportREC他帮我们重新创建了一个区段存放输入表&lt;br /&gt;所以，我们使用LordPE的ReBuiltPe其中的一个功能就是可以把这些残留的0，自动的删除，然后修改节表让他们对齐。&lt;br /&gt;&lt;br /&gt;四.小结&lt;br /&gt;经过了一番的讲解，大家应该知道，LordPE的dump功能大概是怎么运作的了吧，当然从我们的程序从还有很多的不足，从上面例子也能知道了。LordPE在dump下程序的同时，直接将节表中的RA=RVA ，RS=RVS。那么在以后我们将继续改进我们的dump程序，让它增加这些功能。万事开头难，如果你有足够的耐心读完了这一章那么下面的章节就很简单了，不要怕继续吧！&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;第二章．    Dump程序的改进&lt;br /&gt;“发展才是硬道理” &lt;br /&gt;----邓小平&lt;br /&gt;   正如我们上面一节所做的，一个dump的雏形已经形成了，现在要做的是给它在原来的基础上做进一步的改进。&lt;br /&gt;&lt;br /&gt;一.	获取Imageofsize&lt;br /&gt;&lt;br /&gt;相信大家也感觉到了，在前面一章介绍的获取ImageofSize的办法实在很不可靠，对于一个加壳程序随意的修改他载入了内存中的PE头，是很稀疏平常的事情。所以用读取目标进程中的PE头并不是一个好主义。&lt;br /&gt;现在我就来介绍一下一般的办法。对于LordPE他的dump是采用什么方法呢？它采用了对Module32Next来获取dump的进程的基本信息的。&lt;br /&gt;&lt;br /&gt;BOOL WINAPI Module32First( &lt;br /&gt;HANDLE hSnapshot, //这是先前的CreateToolhelp32Snapshot函数返回的快照&lt;br /&gt;  LPMODULEENTRY32 lpme //这个是指向MODULEENTRY32结构的指针&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;下面是MUDULEENTRY32结构：&lt;br /&gt;typedef struct tagMODULEENTRY32 { &lt;br /&gt;  DWORD dwSize; &lt;br /&gt;  DWORD th32ModuleID; &lt;br /&gt;  DWORD th32ProcessID; &lt;br /&gt;  DWORD GlblcntUsage; &lt;br /&gt;  DWORD ProccntUsage; &lt;br /&gt;  BYTE *modBaseAddr; &lt;br /&gt;  DWORD modBaseSize;    //这个是是我们要获取的关键 &lt;br /&gt;  HMODULE hModule; &lt;br /&gt;  TCHAR szModule[MAX_PATH]; &lt;br /&gt;  TCHAR szExePath[MAX_PATH]; &lt;br /&gt;  DWORD dwFlags;&lt;br /&gt;} MODULEENTRY32, *PMODULEENTRY32, *LPMODULEENTRY32;&lt;br /&gt;&lt;br /&gt;下面就给出重新写的新的GetSizeOfImage的函数&lt;br /&gt;int GetSizeOfImage(HWND hDlg,DWORD IDProcess)&lt;br /&gt;{&lt;br /&gt;	//这个函数的作用是获取SizeOfImage的数值&lt;br /&gt;	//当函数执行失败返回的是0&lt;br /&gt;	//成功返回的是非0&lt;br /&gt;	HANDLE hModuleSnap = NULL;&lt;br /&gt;	MODULEENTRY32 stModE  = {0};&lt;br /&gt;	stModE.dwSize = sizeof(MODULEENTRY32);&lt;br /&gt;	hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,IDProcess);  //快照，对本进程中所有的模块进行snap&lt;br /&gt;&lt;br /&gt;	if (hModuleSnap == INVALID_HANDLE_VALUE)&lt;br /&gt;	{&lt;br /&gt;		MessageBox(hDlg,TEXT("The Module snapshot can't get!"),TEXT("Error!"),MB_OK | MB_ICONSTOP);&lt;br /&gt;	    return FALSE;    //返回0&lt;br /&gt;	}&lt;br /&gt;	if (!Module32First(hModuleSnap, &amp;stModE))&lt;br /&gt;	{&lt;br /&gt;	   MessageBox(hDlg,TEXT("The Module32First can't work!"),TEXT("Error!"),MB_OK | MB_ICONSTOP);&lt;br /&gt;	   CloseHandle (hModuleSnap);&lt;br /&gt;	   return FALSE; &lt;br /&gt;	}&lt;br /&gt;	CloseHandle (hModuleSnap);&lt;br /&gt;	return stModE.modBaseSize;//初始化为0&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;二.	对齐节表&lt;br /&gt;&lt;br /&gt;这个问题在上一节我们已经提出了，我们的程序不完善，现在要自动的实现RA=RVA ，RS=RVS这个功能。那么我们就使用一个函数来完成它吧！我定义了下面这个函数：&lt;br /&gt;BOOL ModifySectionFunc(HWND hDlg,LPCTSTR Dump_Name)&lt;br /&gt;{&lt;br /&gt;	//此函数的将修改dump下来的exe，使其RA=RVA ，RS=RVS&lt;br /&gt;	//首先是打开dump文件&lt;br /&gt;	HANDLE hFile=CreateFile(Dump_Name,GENERIC_WRITE | GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);&lt;br /&gt;	if(hFile==INVALID_HANDLE_VALUE)&lt;br /&gt;	{&lt;br /&gt;&lt;br /&gt;		MessageBox(hDlg,TEXT("I can open the dump file..."),TEXT("Error!!"),MB_OK | MB_ICONWARNING);&lt;br /&gt;		return FALSE;&lt;br /&gt;	}&lt;br /&gt;    //下面移动到节表前面&lt;br /&gt;	IMAGE_DOS_HEADER myDosHeader;&lt;br /&gt;	DWORD NumberOfBytesRead;    &lt;br /&gt;	ReadFile(hFile,(LPVOID)&amp;myDosHeader,sizeof(IMAGE_DOS_HEADER),&amp;NumberOfBytesRead,NULL);&lt;br /&gt;	SetFilePointer(hFile,myDosHeader.e_lfanew+sizeof(DWORD),NULL,FILE_BEGIN);&lt;br /&gt;    IMAGE_FILE_HEADER myNtHeader;&lt;br /&gt;	ReadFile(hFile,(LPVOID)&amp;myNtHeader,sizeof(IMAGE_FILE_HEADER),&amp;NumberOfBytesRead,NULL);&lt;br /&gt;	int nSectionCount; &lt;br /&gt;	nSectionCount = myNtHeader.NumberOfSections;             // 保存Section个数&lt;br /&gt;	// 过了IMAGE_NT_HEADERS结构就是IMAGE_SECTION_HEADER结构数组了，注意是结构数组，有几个Section该结构就有几个元素&lt;br /&gt;	// 这里动态开辟NumberOfSections个内存来存储不同的Section信息&lt;br /&gt;	IMAGE_SECTION_HEADER *pmySectionHeader = (IMAGE_SECTION_HEADER *)calloc(nSectionCount, sizeof(IMAGE_SECTION_HEADER));&lt;br /&gt;	SetFilePointer(hFile,myDosHeader.e_lfanew + sizeof(IMAGE_NT_HEADERS),NULL,FILE_BEGIN);&lt;br /&gt;    ReadFile(hFile,(LPVOID)pmySectionHeader,sizeof(IMAGE_SECTION_HEADER)*nSectionCount,&lt;br /&gt;		     &amp;NumberOfBytesRead,NULL);&lt;br /&gt;	//移动回到节表的开始，准备写入&lt;br /&gt;	SetFilePointer(hFile,myDosHeader.e_lfanew + sizeof(IMAGE_NT_HEADERS),NULL,FILE_BEGIN);&lt;br /&gt;	for (int i = 0; i &lt; nSectionCount; i++, pmySectionHeader++)&lt;br /&gt;	{&lt;br /&gt;		//将RA=RVA ，RS=RVS&lt;br /&gt;		pmySectionHeader-&gt;SizeOfRawData=pmySectionHeader-&gt;Misc.VirtualSize;&lt;br /&gt;		pmySectionHeader-&gt;PointerToRawData=pmySectionHeader-&gt;VirtualAddress;&lt;br /&gt;		//将修改好的数值写回&lt;br /&gt;		WriteFile(hFile,(LPVOID)pmySectionHeader,sizeof(IMAGE_SECTION_HEADER),&amp;NumberOfBytesRead,NULL); &lt;br /&gt;	}&lt;br /&gt;	// 恢复指针&lt;br /&gt;	pmySectionHeader -=nSectionCount;&lt;br /&gt;&lt;br /&gt;	if (pmySectionHeader != NULL)          // 释放内存&lt;br /&gt;	{&lt;br /&gt;	  free(pmySectionHeader);&lt;br /&gt;	  pmySectionHeader = NULL;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	// 最后不要忘记关闭文件&lt;br /&gt;	CloseHandle(hFile);&lt;br /&gt;	return TRUE;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;这个函数是在生成了一个新的dump文件以后，然后在打开它，找到节表。把里面的数据修改过来。&lt;br /&gt;&lt;br /&gt;三.	小节&lt;br /&gt;这样，一个改进型的程序就搞定了。现在当我们用他dump下新的程序的时候得到的就是一个有图标的程序了。因为我们已经把节表修改过来了。下面一章我们将介绍anti-dump的技巧。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;第三章．Anti-dump的原理&lt;br /&gt;"我们踏进又踏不进同一条河，我们存在又不存在。"&lt;br /&gt;----赫拉克利特&lt;br /&gt;    事物往往就是这样，它在发展中需要正面的也需要反面的，他们是对立统一在一起的。在前面我们的dump已经基本和一个LordPE的功能差不多了，现在我们要分析一下，一个程序是如何anti-dump的，同时我们也会给出一些简单的解决办法。&lt;br /&gt;&lt;br /&gt;注意：下面所说的方法都是在NT内核下的执行的，并不涉及9x下的。&lt;br /&gt;&lt;br /&gt;一．纠正imagesize&lt;br /&gt;这里我们首先讨论一下关于LordPE的其中一个correct ImageSize的功能。&lt;br /&gt; &lt;br /&gt;首先我们要知道，这个anti是如何产生的。根据上面的介绍我们知道，我们获得的image size是通过MODULEENTRY32的结构的快照，但是这个结构是从那里获得这些数据的呢？&lt;br /&gt;答案是通过PEB(Process Environment Block)进程环境模块获得的。下面是PEB的结构。&lt;br /&gt;struct   _PEB (sizeof=488) &lt;br /&gt;+000 byte     InheritedAddressSpace &lt;br /&gt;+001 byte     ReadImageFileExecOptions &lt;br /&gt;+002 byte     BeingDebugged &lt;br /&gt;+003 byte     SpareBool &lt;br /&gt;+004 void     *Mutant &lt;br /&gt;+008 void     *ImageBaseAddress &lt;br /&gt;+00c struct   _PEB_LDR_DATA *Ldr &lt;br /&gt;+010 struct   _RTL_USER_PROCESS_PARAMETERS *ProcessParameters &lt;br /&gt;+014 void     *SubSystemData &lt;br /&gt;+018 void     *ProcessHeap &lt;br /&gt;+01c void     *FastPebLock &lt;br /&gt;+020 void     *FastPebLockRoutine &lt;br /&gt;+024 void     *FastPebUnlockRoutine &lt;br /&gt;+028 uint32   EnvironmentUpdateCount &lt;br /&gt;+02c void     *KernelCallbackTable &lt;br /&gt;+030 uint32   SystemReserved[2] &lt;br /&gt;+038 struct   _PEB_FREE_BLOCK *FreeList &lt;br /&gt;+03c uint32   TlsExpansionCounter &lt;br /&gt;+040 void     *TlsBitmap &lt;br /&gt;+044 uint32   TlsBitmapBits[2] &lt;br /&gt;+04c void     *ReadOnlySharedMemoryBase &lt;br /&gt;+050 void     *ReadOnlySharedMemoryHeap &lt;br /&gt;+054 void     **ReadOnlyStaticServerData &lt;br /&gt;+058 void     *AnsiCodePageData &lt;br /&gt;+05c void     *OemCodePageData &lt;br /&gt;+060 void     *UnicodeCaseTableData&lt;br /&gt;+064 uint32   NumberOfProcessors &lt;br /&gt;+068 uint32   NtGlobalFlag &lt;br /&gt;+070 union    _LARGE_INTEGER CriticalSectionTimeout &lt;br /&gt;+070    uint32   LowPart &lt;br /&gt;+074    int32    HighPart &lt;br /&gt;+070    struct   __unnamed3 u &lt;br /&gt;+070       uint32   LowPart &lt;br /&gt;+074       int32    HighPart &lt;br /&gt;+070    int64    QuadPart &lt;br /&gt;+078 uint32   HeapSegmentReserve &lt;br /&gt;+07c uint32   HeapSegmentCommit &lt;br /&gt;+080 uint32   HeapDeCommitTotalFreeThreshold &lt;br /&gt;+084 uint32   HeapDeCommitFreeBlockThreshold &lt;br /&gt;+088 uint32   NumberOfHeaps &lt;br /&gt;+08c uint32   MaximumNumberOfHeaps &lt;br /&gt;+090 void     **ProcessHeaps &lt;br /&gt;+094 void     *GdiSharedHandleTable &lt;br /&gt;+098 void     *ProcessStarterHelper &lt;br /&gt;+09c uint32   GdiDCAttributeList &lt;br /&gt;+0a0 void     *LoaderLock &lt;br /&gt;+0a4 uint32   OSMajorVersion &lt;br /&gt;+0a8 uint32   OSMinorVersion &lt;br /&gt;+0ac uint16   OSBuildNumber &lt;br /&gt;+0ae uint16   OSCSDVersion &lt;br /&gt;+0b0 uint32   OSPlatformId &lt;br /&gt;+0b4 uint32   ImageSubsystem &lt;br /&gt;+0b8 uint32   ImageSubsystemMajorVersion &lt;br /&gt;+0bc uint32   ImageSubsystemMinorVersion &lt;br /&gt;+0c0 uint32   ImageProcessAffinityMask &lt;br /&gt;+0c4 uint32   GdiHandleBuffer[34] &lt;br /&gt;+14c function *PostProcessInitRoutine &lt;br /&gt;+150 void     *TlsExpansionBitmap &lt;br /&gt;+154 uint32   TlsExpansionBitmapBits[32] &lt;br /&gt;+1d4 uint32   SessionId &lt;br /&gt;+1d8 void     *AppCompatInfo &lt;br /&gt;+1dc struct   _UNICODE_STRING CSDVersion &lt;br /&gt;+1dc    uint16   Length &lt;br /&gt;+1de    uint16   MaximumLength &lt;br /&gt;+1e0    uint16   *Buffer&lt;br /&gt;&lt;br /&gt;我们从FS：[30]就可以获得这个PEB的首地址。然后在0C处的_PEB_LDR_DATA *Ldr是一个关键通过它，我们能访问到&lt;br /&gt;&lt;br /&gt;typedef struct _PEB_LDR_DATA {&lt;br /&gt;ULONG Length;&lt;br /&gt;BOOLEAN Initialized;&lt;br /&gt;PVOID SsHandle;&lt;br /&gt;LIST_ENTRY InLoadOrderModuleList;&lt;br /&gt;LIST_ENTRY InMemoryOrderModuleList;&lt;br /&gt;LIST_ENTRY InInitializationOrderModuleList;&lt;br /&gt;} PEB_LDR_DATA, *PPEB_LDR_DATA;&lt;br /&gt;&lt;br /&gt;该结构的后三个成员是指向LDR_MODULE链表结构中相应三条双向链表头的指针，分别是按照加载顺序、在内存中的地址顺序和初始化顺序排列的模块信息结构的指针。于是通过它，我们能访问到_LDR_MODULE结构，而这里面包括了本进程的SizeOfImage。&lt;br /&gt;_LDR_MODULE结构如下：&lt;br /&gt;typedef struct _LDR_MODULE {&lt;br /&gt;LIST_ENTRY InLoadOrderModuleList;&lt;br /&gt;LIST_ENTRY InMemoryOrderModuleList;&lt;br /&gt;LIST_ENTRY InInitializationOrderModuleList;&lt;br /&gt;PVOID BaseAddress;&lt;br /&gt;PVOID EntryPoint;&lt;br /&gt;ULONG SizeOfImage;                   //进程的image size&lt;br /&gt;UNICODE_STRING FullDllName;&lt;br /&gt;UNICODE_STRING BaseDllName;&lt;br /&gt;ULONG Flags;&lt;br /&gt;SHORT LoadCount;&lt;br /&gt;SHORT TlsIndex;&lt;br /&gt;LIST_ENTRY HashTableEntry;&lt;br /&gt;ULONG TimeDateStamp;&lt;br /&gt;} LDR_MODULE, *PLDR_MODULE;&lt;br /&gt;&lt;br /&gt;所以，我们得到关键的代码就是：&lt;br /&gt;////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;	//这里的几个代码是修改PEB的关键&lt;br /&gt;	__asm&lt;br /&gt;	{&lt;br /&gt;		mov eax,fs:[30h]                //获得PEB地址&lt;br /&gt;		mov eax,[eax+0ch]               // +00c struct   _PEB_LDR_DATA *Ldr &lt;br /&gt;		mov eax,[eax+0ch]               // _LDR_MODULE的首地址&lt;br /&gt;		mov dword ptr [eax+20h],1000h   //eax+20是保存image size的地方&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;上面的代码的作用就是把image size的大小改为了1000h，这样我们用MODULEENTRY32得到的大小是不准确的。所以大家在跟踪壳的时候特别要小心上面的几行代码。如果看见它就直接跳过吧。&lt;br /&gt;&lt;br /&gt;好了，知道他是怎么anti的以后看看LordPE是怎么使用correct ImageSize的，我稍微跟踪了一下它的的代码。发现了下面的API函数：&lt;br /&gt;1．	GetProcessBaseSize&lt;br /&gt;2．	GetProcessPath&lt;br /&gt;3．	CreateFileA&lt;br /&gt;4．	ReadFile&lt;br /&gt;看到这里想必大家也知道，怎么回事了吧。他在获得了绝对路径以后打开了磁盘上的PE文件，读取里面PE头的ImageSize，来纠正这个错误了的image size。恩，或许你会说，那么我写一个anti来修改PE文件头的ImageSize，让它获得的还是错误的。呵呵，我不得不提醒你的是，任何对文件的操作都是危险的。我们来设想一下这种情形：当你把原来的PE文件打开了以后，把一个错误的ImageSize写入了这个PE文件里面，使LordPE的correct ImageSize仍然无功而反，而打算在某一个地方，再次打开文件把正确的信息写回PE文件。（否则你下次就别想打开它了）且不说这样的办法很烦琐，我们设想一下这个时候，你的机器死机了！你不得不重起机器。而你的收尾工作还没结束。于是你的PE文件除了anti的作者，别人在不知道为什么的情况下，再也别想打开它了。&lt;br /&gt;&lt;br /&gt;   所以一个聪明的程序员，都不会做这种危险的事情。好了，来看看我是如何实现这个功能的吧。我在原来的基础上填加了一个按钮“纠正大小”的按钮。那再重新定义了一个函数来实现这个功能：&lt;br /&gt;&lt;br /&gt;BOOL CorrectSizeFunc(HWND hDlg,HWND hWindList)&lt;br /&gt;{&lt;br /&gt;	//函数能获取文件的PE头部的SizeOfImage，作为正确的SizeOfImage&lt;br /&gt;    LPCTSTR File_Name=NULL;                   &lt;br /&gt;    WPARAM tmp=(WPARAM)SendMessage(hWindList,LB_GETCURSEL,0,0);&lt;br /&gt;	if (tmp==LB_ERR)&lt;br /&gt;	{&lt;br /&gt;		MessageBox(hDlg,TEXT("Please choose a process..."),TEXT("oh...no,no,no..."),MB_OK);&lt;br /&gt;		return FALSE;&lt;br /&gt;	}&lt;br /&gt;	DWORD IDProcess=SendMessage(hWindList,LB_GETITEMDATA,tmp,0); //获得此列单里面的进程ID&lt;br /&gt;	ID=IDProcess;//全局变量ID的作用是控制在不同的进程的切换&lt;br /&gt;	File_Name=GetFilePath(hDlg,IDProcess);&lt;br /&gt;	if(!File_Name)&lt;br /&gt;		return FALSE;&lt;br /&gt;    //打开文件&lt;br /&gt;	HANDLE  hFile;&lt;br /&gt;	hFile=CreateFile(File_Name,GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);&lt;br /&gt;&lt;br /&gt;	if (hFile == INVALID_HANDLE_VALUE )&lt;br /&gt;	{&lt;br /&gt;		return FALSE ;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	//创建文件映射内核对象&lt;br /&gt;	HANDLE hMapping;&lt;br /&gt;	hMapping =	CreateFileMapping (hFile, NULL, PAGE_READONLY,0,0,NULL);&lt;br /&gt;	if (hMapping == NULL )&lt;br /&gt;	{&lt;br /&gt;		CloseHandle (hFile ) ;&lt;br /&gt;		return FALSE;&lt;br /&gt;	}&lt;br /&gt;	//创建文件视图&lt;br /&gt;	LPVOID ImageBase ;&lt;br /&gt;	ImageBase =MapViewOfFile(hMapping,FILE_MAP_READ,0,0,0) ;&lt;br /&gt;	if (ImageBase == NULL)&lt;br /&gt;	{&lt;br /&gt;		CloseHandle (hMapping) ;&lt;br /&gt;		return FALSE;&lt;br /&gt;	}&lt;br /&gt;    //下面的代码就是从文件的PE头找到SizeOfImage的&lt;br /&gt;	PIMAGE_DOS_HEADER DosHead = NULL ;&lt;br /&gt;	PIMAGE_NT_HEADERS32 pNtHeader = NULL ;&lt;br /&gt;    PIMAGE_FILE_HEADER pFileHeader = NULL ;&lt;br /&gt;    PIMAGE_OPTIONAL_HEADER pOptionalHeader = NULL ;&lt;br /&gt;    PIMAGE_SECTION_HEADER pSectionHeader = NULL ;&lt;br /&gt;	DosHead=(PIMAGE_DOS_HEADER)ImageBase;&lt;br /&gt;	pNtHeader = ( PIMAGE_NT_HEADERS32 ) ((DWORD)ImageBase + DosHead-&gt;e_lfanew ) ;&lt;br /&gt;	pOptionalHeader = &amp;pNtHeader-&gt;OptionalHeader;	&lt;br /&gt;    sizeofimage=(int)pOptionalHeader-&gt;SizeOfImage;&lt;br /&gt;    //找到了以后，输出结果&lt;br /&gt;	char szBuffer[100];&lt;br /&gt;	char szMsg[]="原来的image size是：%08X\n修整的image size是：%08X";&lt;br /&gt;	wsprintf(szBuffer,szMsg,GetSizeOfImage(hDlg,IDProcess),sizeofimage);&lt;br /&gt;	MessageBox(hDlg,szBuffer,TEXT("纠正结果"),MB_OK );&lt;br /&gt;    CloseHandle (hMapping);&lt;br /&gt;    CloseHandle (hFile) ;&lt;br /&gt;	Sleep(200);&lt;br /&gt;	return TRUE; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;这个功能实现到是很简单，但是同时要强调的一点是，在我在协调纠正的进程和dump进程是不一样的进程的时候，出了一些小问题。我采用了一个很愚蠢的办法，定义了一个全局变量ID来控制这种事情的发生。&lt;br /&gt;&lt;br /&gt;二.实战&lt;br /&gt;&lt;br /&gt;   这个modify_module_imagesize程序包括了上面的修改PEB里面image size的代码。运行它：&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;可以看到原来的image size已经被修改了。&lt;br /&gt;&lt;br /&gt;好了，现在用我们的dump来试试吧。&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;这样我们再dump它，就能得到原来C000大小的进程了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;二．其他anti方式&lt;br /&gt;  根据上面的MODULEENTRY32结构，我们能得到很多启发。毕竟懂得了原理，那么寻找anti的办法是不难的。首先是基地址，我们能不能修改PEB中的基地址呢？&lt;br /&gt;   事实上，这种方法会产生不必要的麻烦。也就是说不可行。&lt;br /&gt;   另一种办法是修改文件的路径，这种办法很好。但是只是能在9x中使用，因为目前为止，不知道在NT内核下的这种办法。所以在这里我也不介绍了。有兴趣的读者可以去看看《软件加密技术内幕》P204-P207，在那里hying有完整的介绍。&lt;br /&gt;  下面要介绍的是一种非常普遍，也很常用的办法。就是利用内存属性进行anti。&lt;br /&gt;  我们知道，如果我们打开了一个进程，那么要读写进程里面的内容，必须要获得应有的权限读权利。实际上，当一个exe文件被load到内存里面的时候，他的所有取段都具有读的权利，而正是这样我们才能把他从内存中读出来，写到磁盘文件上面。所以，我们的anti来了，如果我们将部分不用区段的权限修改一下，把他的读权限取消。会发生什么结果呢？&lt;br /&gt;  让我们来做一个简单的实验吧！&lt;br /&gt;/*------------------------------------------------------------------------&lt;br /&gt;	Save as Modify_the_read_right.cpp&lt;br /&gt;               					(c) Lenus Margin 2005 10.15&lt;br /&gt;-------------------------------------------------------------------------*/&lt;br /&gt;&lt;br /&gt;#include &lt;windows.h&gt;&lt;br /&gt;#include &lt;iostream.h&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;	DWORD dwOldProtect;	&lt;br /&gt;	HMODULE ImageBase=GetModuleHandle(NULL);&lt;br /&gt;	VirtualProtect(ImageBase,1000,PAGE_NOACCESS,&amp;dwOldProtect);//将PE头改为不可访问的的属性    &lt;br /&gt;	cout&lt;&lt;"The PE HEAD read right change to no_access!!"&lt;&lt;endl;&lt;br /&gt;	cout&lt;&lt;"U can try to dump at here!"&lt;&lt;endl;&lt;br /&gt;	getchar();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;等运行了以后，我们用LordPE来dump它吧，发现了什么没有？一个经典的对话框！&lt;br /&gt; &lt;br /&gt;这个东西，相信大家一定见过。让我们看看，在这个进程里面的400000处吧！&lt;br /&gt; &lt;br /&gt;选中进程---右键---dump region就可以看到上面的窗口了。果然已经变成了NOACCESS的属性了。&lt;br /&gt;那么应该怎么解决呢？这个我们就要请出更强的工具来了。现在我们就用OD的ollydump来dump它！&lt;br /&gt;用OD载入以后，F9运行！好了，这时我们可以用LordPE还是看到上面的NOACCESS的属性，但是我们到OD的内存镜象里面看看是什么结果呢？&lt;br /&gt; &lt;br /&gt;我们可以看到，他仍然是可读，可写，可执行的权限。&lt;br /&gt;为什么会这样呢？&lt;br /&gt;因为OD这个调试器需要编辑这个进程的空间中的数据，而如果一个区段因为设置了NOACCESS而得不到访问，不能编辑实在是不可想象的。所以他在我们需要使用这段空间的时候就将它的属性临时的修改到了完整的权限，而当我们使用完毕以后呢？再修改回来，可以说，ring3的调试器老是在干这种事情，比如说int3的放置也是这样的。从这些侧面我们也能体会到OD的强大。&lt;br /&gt;&lt;br /&gt;好了，现在用ollydump就可以dump下来了。&lt;br /&gt;&lt;br /&gt;四．小结&lt;br /&gt;小结一下。关于anti这一章，以上的这些只是一些常见的手段。事实上，矛盾的较量永远不会停止，正如开篇的赫拉克利特所说"我们踏进又踏不进同一条河，我们存在又不存在。"在哲学上事物是矛盾的统一，没有了此消彼长的竞争，也没有了任何存在的可能。而在加密解密的世界anti-dump也是一个大学问，从而我们在避开anti的同时也会发现很多很巧妙的方法。好了原理就说到这里，下面一章我们将转入实战，让你感受另类的脱壳！&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;第四章．Dump的位置&lt;br /&gt;The Golden Rule is that there are no golden rules. &lt;br /&gt; 真正的金科玉律就是世上并无金科玉律。——G.B.Shaw&lt;br /&gt;   现在，你是不是还认为要dump就一定只能在OEP处呢？你现在是不是还觉得dump是一件没有技术含量的工作呢？好，下面我将详细的说明一下在什么地方dump将会得到事半功倍的效果！&lt;br /&gt;一．	在OEP处dump&lt;br /&gt;    一般来说，入门及的菜鸟都知道，在oep处dump下进程是正确的，当OD停在push ebp的时候，我们冲动的神情就连显示器也会害怕。在LordPE,Ollydump…..十八般兵器全用上以后，如果我们得到的是一个不能dump的对话框，那么一切就完了，此壳也因此打入冷宫！&lt;br /&gt;   那么，我们首先要知道。为什么我们要在OEP处dump呢？ &lt;br /&gt;   一般来说，一个简单的压缩壳（比如UPX），它在运行的时候会做什么事情呢？&lt;br /&gt;1.	它要把压缩了的全部的代码数据释放到内存中。&lt;br /&gt;2.	它要把IAT的地址写到适当位置&lt;br /&gt;   那么，它什么时候完成这些工作呢？&lt;br /&gt;   答案是最后一刻！&lt;br /&gt;   对，让我们来看看UPX的最后几句！&lt;br /&gt;0040EA8D    09C0           or eax,eax&lt;br /&gt;0040EA8F    74 07          je short NOTEPAD.0040EA98&lt;br /&gt;0040EA91    8903           mov dword ptr ds:[ebx],eax                   ; kernel32._lwrite&lt;br /&gt;0040EA93    83C3 04        add ebx,4&lt;br /&gt;0040EA96  ^ EB E1          jmp short NOTEPAD.0040EA79&lt;br /&gt;0040EA98    FF96 A8EC0000  call dword ptr ds:[esi+ECA8]&lt;br /&gt;0040EA9E    61             popad&lt;br /&gt;0040EA9F  - E9 2826FFFF    jmp NOTEPAD.004010CC&lt;br /&gt;明显它在做“写”的工作，当写完了也就JMP OEP了。所以当它完全解压缩了以后，当它把IAT都写好了以后。我们就可以dump它了。而我们更多的选择在OEP的地方就是这个原因。因为在OEP处，它的代码和IAT一般是会解压完毕了的。&lt;br /&gt;二．	不在OEP处dump&lt;br /&gt;现在我们知道了，dump的原则了以后。那么很好办，我们不一定要在OEP处dump了。好，我们可以在jmp NOTEPAD.004010CC这里dump，也可以在0040EA9E    61             popad这里dump。当然还可以在&lt;br /&gt;004010CC    55             push ebp&lt;br /&gt;004010CD    8BEC           mov ebp,esp   //在这里&lt;br /&gt;004010CF    83EC 44        sub esp,44  //在这里&lt;br /&gt;哈哈，什么位置都可以dump！为什么一定要在OEP处呢？！&lt;br /&gt;三．	他山之石&lt;br /&gt;下面我们来看看两篇高手的范文，让我们更深刻的理解一下dump的技巧，dump的花样。^-^&lt;br /&gt;&lt;br /&gt;1.	首先是fly的《Thinstall V2.501脱壳——Win98的Notepad》&lt;br /&gt;http://bbs.pediy.com/showthread.php?s=&amp;threadid=8158&lt;br /&gt;下面是引用部分&lt;br /&gt;&lt;br /&gt;二、获取加壳前程序的PE Header等数据&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ctrl+S 搜索命令序列：&lt;br /&gt;mov eax,dword ptr ds:[eax+3C]&lt;br /&gt;mov ecx,dword ptr ss:[ebp-118]&lt;br /&gt;找到在7FF427BA处，直接F4过去&lt;br /&gt;&lt;br /&gt;7FF427A5     8B85 D4FDFFFF     mov eax,dword ptr ss:[ebp-22C]&lt;br /&gt;7FF427AB     8B40 18           mov eax,dword ptr ds:[eax+18]&lt;br /&gt;7FF427AE     8985 E8FEFFFF     mov dword ptr ss:[ebp-118],eax&lt;br /&gt;7FF427B4     8B85 E8FEFFFF     mov eax,dword ptr ss:[ebp-118]&lt;br /&gt;7FF427BA     8B40 3C           mov eax,dword ptr ds:[eax+3C]&lt;br /&gt;//F4到这里&lt;br /&gt;7FF427BD     8B8D E8FEFFFF     mov ecx,dword ptr ss:[ebp-118]&lt;br /&gt;7FF427C3     8D4401 18         lea eax,dword ptr ds:[ecx+eax+18]&lt;br /&gt;7FF427C7     8985 D0FDFFFF     mov dword ptr ss:[ebp-230],eax  ; Notepad.004000E8&lt;br /&gt;//在这里可以得到PE Header和The Section Table数据 ★&lt;br /&gt;7FF427CD     C705 D05DF97F 020&gt;mov dword ptr ds:[7FF95DD0],2&lt;br /&gt;&lt;br /&gt;PE Header：&lt;br /&gt;004000D0  50 45 00 00 4C 01 01 00 D6 57 5A 35 00 00 00 00  PE..L  .諻Z5....&lt;br /&gt;004000E0  00 00 00 00 E0 00 0E 01 0B 01 03 0A 00 40 00 00  ....? &lt;br /&gt;   ..@..&lt;br /&gt;004000F0  00 70 00 00 00 00 00 00 CC 10 00 00 00 10 00 00  .p......?... ..&lt;br /&gt;00400100  00 50 00 00 00 00 40 00 00 10 00 00 00 10 00 00  .P....@.. ... ..&lt;br /&gt;00400110  04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ....... .......&lt;br /&gt;00400120  C6 CA 00 00 00 04 00 00 00 00 00 00 02 00 00 00  剖... ...... ...&lt;br /&gt;00400130  00 00 10 00 00 10 00 00 00 00 10 00 00 10 00 00  .. .. .... .. ..&lt;br /&gt;00400140  00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00  .... ...........&lt;br /&gt;00400150  00 60 00 00 8C 00 00 00 00 70 00 00 C8 42 00 00  .`..?...p..菳..&lt;br /&gt;…… ……&lt;br /&gt;&lt;br /&gt;毕竟只是捆绑壳，此时代码已经解压，现在dump则IAT等信息都是未加密的，正是脱壳的最佳时机！&lt;br /&gt;&lt;br /&gt;  我们可以看到，文中提到在跟踪到7FF427BA的时候整个IAT的信息已经解压完毕，而且还没加密，并且这时的代码也释放完毕了。所以在这里是完美的dump时机。而如果我们在寻找到OEP处的时候，那么一切都已经完了。狡猾的壳，把该隐藏的都隐藏起来了。那时我们再去dump，得到的只是作者想要我们得到的东西，那只能说我们中了圈套了！&lt;br /&gt;&lt;br /&gt;2.	接着是csjwaman的《Steel Box 脱壳》&lt;br /&gt;http://bbs.pediy.com/showthread.php?s=&amp;threadid=8356&lt;br /&gt;下面是引用部分&lt;br /&gt;共有4处要修复。其中第4处是程序退出时运行的。004041D5处下断，运行程序，然后退出程序。程序就会断在004041D5处。此时要修复的代码都已解开：&lt;br /&gt;00404100    55              PUSH EBP&lt;br /&gt;00404101    8BEC            MOV EBP,ESP&lt;br /&gt;00404103    53              PUSH EBX&lt;br /&gt;00404104    56              PUSH ESI&lt;br /&gt;00404105    57              PUSH EDI&lt;br /&gt;00404106    BB 00704000     MOV EBX,anota2.00407000&lt;br /&gt;0040410B    66:2E:F705 8E47&gt;TEST WORD PTR CS:[40478E],4&lt;br /&gt;00404115    0F85 DB000000   JNZ anota2.004041F6&lt;br /&gt;0040411B    6A 00           PUSH 0&lt;br /&gt;0040411D    FF15 D0824000   CALL NEAR DWORD PTR DS:[4082D0]&lt;br /&gt;00404123    E8 9C020000     CALL anota2.004043C4&lt;br /&gt;00404128    C783 08010000 0&gt;MOV DWORD PTR DS:[EBX+108],1////已修复处1&lt;br /&gt;00404132    8D83 94020000   LEA EAX,DWORD PTR DS:[EBX+294]&lt;br /&gt;00404138    50              PUSH EAX&lt;br /&gt;00404139    FF15 84824000   CALL NEAR DWORD PTR DS:[408284]&lt;br /&gt;0040413F    83EC 44         SUB ESP,44&lt;br /&gt;00404142    C70424 44000000 MOV DWORD PTR SS:[ESP],44&lt;br /&gt;00404149    C74424 2C 00000&gt;MOV DWORD PTR SS:[ESP+2C],0&lt;br /&gt;00404151    54              PUSH ESP&lt;br /&gt;00404152    FF15 7C824000   CALL NEAR DWORD PTR DS:[40827C]&lt;br /&gt;00404158    B8 0A000000     MOV EAX,0A&lt;br /&gt;0040415D    F74424 2C 01000&gt;TEST DWORD PTR SS:[ESP+2C],1&lt;br /&gt;00404165    74 05           JE SHORT anota2.0040416C&lt;br /&gt;00404167    0FB74424 30     MOVZX EAX,WORD PTR SS:[ESP+30]&lt;br /&gt;0040416C    83C4 44         ADD ESP,44&lt;br /&gt;0040416F    8983 FE000000   MOV DWORD PTR DS:[EBX+FE],EAX&lt;br /&gt;00404175    FF15 60824000   CALL NEAR DWORD PTR DS:[408260]&lt;br /&gt;0040417B    E8 21040000     CALL anota2.004045A1&lt;br /&gt;00404180    8983 F4000000   MOV DWORD PTR DS:[EBX+F4],EAX&lt;br /&gt;00404186    FF15 68824000   CALL NEAR DWORD PTR DS:[408268]&lt;br /&gt;0040418C    8983 F0000000   MOV DWORD PTR DS:[EBX+F0],EAX&lt;br /&gt;00404192    6A 00           PUSH 0&lt;br /&gt;00404194    FF15 78824000   CALL NEAR DWORD PTR DS:[408278]&lt;br /&gt;0040419A    8983 04010000   MOV DWORD PTR DS:[EBX+104],EAX&lt;br /&gt;004041A0    E8 07010000     CALL anota2.004042AC&lt;br /&gt;004041A5    B8 FF000000     MOV EAX,0FF////已修复处2&lt;br /&gt;004041AA    72 36           JB SHORT anota2.004041E2&lt;br /&gt;004041AC    E8 5E020000     CALL anota2.0040440F&lt;br /&gt;004041B1    E8 3B040000     CALL anota2.004045F1&lt;br /&gt;004041B6    B8 FF000000     MOV EAX,0FF////已修复处3&lt;br /&gt;004041BB    72 07           JB SHORT anota2.004041C4&lt;br /&gt;004041BD    53              PUSH EBX&lt;br /&gt;004041BE    E8 57010000     CALL anota2.0040431A&lt;br /&gt;004041C3    5B              POP EBX&lt;br /&gt;004041C4    50              PUSH EAX&lt;br /&gt;004041C5    E8 55010000     CALL anota2.0040431F&lt;br /&gt;004041CA    E8 37010000     CALL anota2.00404306&lt;br /&gt;004041CF    FFB3 F0000000   PUSH DWORD PTR DS:[EBX+F0]////已修复处4&lt;br /&gt;004041D5    FF15 5C824000   CALL NEAR DWORD PTR DS:[40825C]&lt;br /&gt;&lt;br /&gt;把这些代码复制后覆盖到主程序404100－4041D4处就完成了。&lt;br /&gt;上面的这段是在说明这么修复代码的段落。这壳在到达OEP处的时候有4个地方，并没有将代码完全的解压。所以我们在OEP处dump就得到4处没有解压的代码，而文中提到的办法是，先把程序dump下。等待程序运行把这些代码解压以后再进行粘贴。&lt;br /&gt;“把这些代码复制后覆盖到主程序404100－4041D4处就完成了。”&lt;br /&gt;这当然是个很好的办法，符合我们脱壳的逻辑。而我们在懂得他的原理以后大可大胆的想象。我们在等待这次处接压完毕以后再dump会如何呢？&lt;br /&gt;四．	实战&lt;br /&gt;下面我们来脱一个比较有趣的壳吧！听说这个壳在9x是秒脱，但是在NT内核下的就不是那么简单的了。^-^&lt;br /&gt;目标：VBExplorer &lt;br /&gt;加壳方式：Shrinker 3.4&lt;br /&gt;OD载入以后&lt;br /&gt;寻找OEP的过程很简单，在找到最后的异常以后&lt;br /&gt;00554E7B    8B1F           mov ebx,dword ptr ds:[edi]//最后的异常&lt;br /&gt;00554E7D    85DB           test ebx,ebx&lt;br /&gt;00554E7F    74 6C          je short VBExplor.00554EED&lt;br /&gt;00554E81    837D F4 00     cmp dword ptr ss:[ebp-C],0&lt;br /&gt;00554E85    74 08          je short VBExplor.00554E8F&lt;br /&gt;&lt;br /&gt;   我们用F8走几步就能到达JMP OEP的地方&lt;br /&gt;005546AE    8945 E0        mov dword ptr ss:[ebp-20],eax&lt;br /&gt;005546B1    FF75 10        push dword ptr ss:[ebp+10]&lt;br /&gt;005546B4    FF75 0C        push dword ptr ss:[ebp+C]&lt;br /&gt;005546B7    FF75 08        push dword ptr ss:[ebp+8]&lt;br /&gt;005546BA    FF55 E0        call dword ptr ss:[ebp-20]                   ; VBExplor.00425342&lt;br /&gt;//上面的就是JMP OEP的地方&lt;br /&gt;&lt;br /&gt;下来我们看看OEP是什么东西：&lt;br /&gt;00425342    0000           add byte ptr ds:[eax],al         //OEP&lt;br /&gt;00425344    0000           add byte ptr ds:[eax],al&lt;br /&gt;00425346    0000           add byte ptr ds:[eax],al&lt;br /&gt;00425348    0000           add byte ptr ds:[eax],al&lt;br /&gt;0042534A    0000           add byte ptr ds:[eax],al&lt;br /&gt;0042534C    0000           add byte ptr ds:[eax],al&lt;br /&gt;0042534E    0000           add byte ptr ds:[eax],al&lt;br /&gt;00425350    0000           add byte ptr ds:[eax],al&lt;br /&gt;00425352    0000           add byte ptr ds:[eax],al&lt;br /&gt;00425354    0000           add byte ptr ds:[eax],al&lt;br /&gt;00425356    0000           add byte ptr ds:[eax],al&lt;br /&gt;&lt;br /&gt;这就是我们得到的OEP，怎么回事呢？怎么没有数据呢？&lt;br /&gt;   这个壳在之前并没有解压这个壳的代码和数据，而当我们在运行的时候执行或者读取这些指令那么就会产生异常，而这时壳代码再试图将他们解压。哈哈…现在知道了吧，如果我们在OEP处dump能得到什么呢？！&lt;br /&gt;   好了，我们下断点BP ExitProcess。对！我们要在它退出的时候断下来！&lt;br /&gt;   OK，我们忽略掉所有的异常，运行它吧！让主界面出现在我们的机器上！这时我们要做的是让他的代码完全的从内存中释放出来！如果你不放心还可以使用一下这个软件的功能^-^&lt;br /&gt; &lt;br /&gt;   好了，退出吧，让它中断下来！&lt;br /&gt;7C81CAA2 &gt;  8BFF           mov edi,edi    //断在这里&lt;br /&gt;7C81CAA4    55             push ebp&lt;br /&gt;7C81CAA5    8BEC           mov ebp,esp&lt;br /&gt;7C81CAA7    6A FF          push -1&lt;br /&gt;&lt;br /&gt;   行了，我们可以dump了….等等，在这里dump大家都明白它的原理了吧！使用LordPE来看看！出错了，不行吧！好看看是怎么回事呢？&lt;br /&gt; &lt;br /&gt;   发现了什么没有，原来它在释放数据的过程中，只释放了必要的一部分而另一部分并没有改变它的属性仍然是NOACCESS的属性。那么好吧！用OllyDump上吧。可是你会发现还是不行啊！&lt;br /&gt;   &lt;br /&gt;   确定以后虽然能dump下来，但是却是0K的大小！&lt;br /&gt;呵呵，为什么我们以前举的例子里面就可以，现在就不可以了呢？&lt;br /&gt;答案很简单，我们以前是把整个区段从开头都设置成了不可访问的区段，而现在的只是把其中的一块设置成了NOACCESS，也就是说这个技巧欺骗了OD！&lt;br /&gt;现在怎么办！&lt;br /&gt;Fellow Me!!&lt;br /&gt;用Alt+M打开内存镜象！&lt;br /&gt; &lt;br /&gt;看到“完整权限”的字样了没有？我们将每个区段重新都设置它为完整的权限一次！&lt;br /&gt;好了，现在我们再用LordPE看看吧！&lt;br /&gt; &lt;br /&gt;     看到了吧，不得不佩服OD的强大功能啊！&lt;br /&gt;&lt;br /&gt;现在你可以用任何的工具将它dump下来了！注意OEP=425342&lt;br /&gt;用ImportREC可以简单的修复它的输入表。但是遗憾的是，事情还没有结束，在修复完了以后还有些毛病！&lt;br /&gt;那就是运行以后，所有的资源好象都不见了，其实它只是有部分代码没有执行而已。OK，关于dump的我就讲这么多了。以后的完美脱壳，就留给大家去努力吧！&lt;br /&gt;五．	小结&lt;br /&gt;这是一个站在巨人肩膀上的时代，多东西需要借助别人的经验继续工作。而吸收和改进将是这个工作必要的阶段。&lt;br /&gt;也许看了上面的文字，你会问我2个问题：&lt;br /&gt;1.	我怎么知道代码或者IAT什么时候解压完毕？&lt;br /&gt;2.	我怎么确定这个是最佳的dump的时机？&lt;br /&gt;说实在的，这个是一个经验和辛苦的工作，作为菜鸟加懒鸟的我实在不愿意一步一步的跟踪，把整个壳的思想弄清楚。如果你能作到把整个壳的思路弄明白，把这个壳逆向一遍。那么我想上面的问题也是自然而然的解决了。所以，我们要对那些把整个壳的代码逆向的高手们致敬。同时我也要告诉各位，只要大家有时间，应该试这向这个方面努力。毕竟，只有这个方向才是一个真正的cracker应该做的，因为逆向学习才是cracker的第一精神，而破解的成果是第二位的。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;第五章．Dump工具的比较&lt;br /&gt; “今天将要结束，明天也将结束，难以结束的是昨天。”&lt;br /&gt;---安东尼奥•波契亚&lt;br /&gt;在论坛上经常会看到一些人问：什么工具dump好用？为什么要用ollydump来dump呢？等等。下面我来总结一下几种dump工具的优缺点。&lt;br /&gt;&lt;br /&gt;注意：下面的文字只是我个人的感觉，由于水平问题很难保持客观性。请三思！&lt;br /&gt;&lt;br /&gt;一.	比较&lt;br /&gt;&lt;br /&gt;1.	ProcDump&lt;br /&gt;这个工具我现在也不太用了，他是使用MODULEENTRY32来获取进程信息的工具，它会读取目标进程的IMAGE_DOS_SIGHATURE和IMAGE_NT_SIGNATURE标志。其他的就不检验了。如果不完整，他会打开进程的原始文件，读取它的原始文件，读取它的文件头以取代进程的文件头。&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;2.	LordPE&lt;br /&gt;这个工具我使用得最多，但并不是说它是最好的。只是一个习惯问题。它基本上也和ProcDump一样使用MODULEENTRY32来获取进程信息。然而我们可以看到LordPE的Options里面的设置&lt;br /&gt; &lt;br /&gt;在这里面就有直接从磁盘获取PE Head的默认选项，也就是说基本上他的PE Head都是从磁盘获得的。&lt;br /&gt; 同时，在观察区域属性和获取其他的区域数据的时候LordPE的dump region功能非常强大，这点是OllyDump不足的。在以壳解壳的技巧中，LordPE的此功能将是决定意义的。但是它的不足前面也提到过，有些进程在权限上不可读的时候，将是它致命的伤！&lt;br /&gt; &lt;br /&gt;3.	OllyDump&lt;br /&gt;这是一个OD的插件，基本上的原理和功能差不多。但是，正是由于它是OD的插件，它能通过OD获得更多的权限。在前面的例子中我们能看到，对于内存属性的问题，依靠OD强大的功能OllyDump能dump下一些LordPE所不能dump的进程。而它的“获取EIP值作为OEP”也是一个亮点。&lt;br /&gt; &lt;br /&gt;至于缺点那么，最最突出的就是上面的默认的重建输入表选项。我们知道，对于一些加密壳来说，他们的输入表就连ImportREC这样专业的输入表修复工具，它的三个等级的修复也未必能修复出来，而这两个方式1和方式2的确有点添足的意思。其实我并不是反对它增加功能，我只是希望不要做成默认的选项！当然如果还是不改进，有空还是要DIY一下的。^-^&lt;br /&gt;第二个缺点，就是它不能dump下其他区域的数据，这一点很是无奈。这也是为什么我比较习惯使用LordPE的原因。&lt;br /&gt;二.小结&lt;br /&gt;工具的好坏，只是思想和工作程度的问题。只要我们掌握了工具工作的原理和思想，那么加以时日，我们也可以写出自己用着顺手的工具来。“真正的cracker高手的工具都是自己写的，内部使用的”对于前半句，我双手赞成，对于后半句嘛….我觉得cracker的精神里面除了学习（learn）的第一精神以外,还应该是共享(share)的精神。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;Dump技术在脱壳中的重要地位不言而喻，事实上这是由于这个from memory to disk的过程，我们才会把这个“脱壳”这两个字理解得如此形象。&lt;br /&gt;在基本的脱壳概念中，我们似乎一直被公式化，教条化的东西是束缚着，在这里我觉得我这篇文章要教会大家的不仅仅是dump的技巧，而是要在原理的层次上进一步的探索，对于只能照本宣科的人来说，创新是永远不可能的事情。而如果不能真正的理解原理，理解为什么那么我们只能永远的停留在应用的阶段。&lt;br /&gt;由于时间关系，在文中有大量的代码和一些概念由于时间关系没有解释清楚，而对于内存属性的保护，以及模拟LordPE的更多的功能将是以后和各位的工作了。这一点我觉得“砖”能这样抛，相信“玉”也能令人期待了。&lt;br /&gt;&lt;br /&gt;致谢：&lt;br /&gt;在国庆期间，我决定写这篇文章的时候。我得到了很多人的帮助和鼓励。首先，要感谢的是朋友，他们是love8909和sen两位兄弟，而发表在成员区的时候也得到了论坛成员的的鼓励。当然，你可能说这些东西都是别人的。没错，基本上我上面所学习到的知识并不新颖，是《软件加密技术内幕》中hying教会了我决大部分东西，要好好的谢谢他（也许他并不这么认为）。当然还有KanXue大哥，在他的支持下我能顺利的发表这篇文章。而在编写代码的同时，对于进程模块的exe确定的问题，也捆饶了我很久，在这里我要谢谢forgot，是他的提醒，我才能坚定了我的做法！还有很多要感谢的人，但是在最后我却想把这篇文章送给一个我最爱的女孩，经管也许她永远不会看到这些话….&lt;br /&gt;&lt;br /&gt;参考文献：&lt;br /&gt;&lt;br /&gt;《软件加密技术内幕》--- 看雪学院&lt;br /&gt;《windows环境下32位汇编语言程序设计》--- 罗云彬&lt;br /&gt;《Windows 程序设计》---- Charles Petzold&lt;br /&gt;《JIURL玩玩Win2k进程线程篇 PEB》--- JIURL&lt;br /&gt;《病毒编程技术-API函数地址的获取》--- 温玉洁&lt;br /&gt;《PE结构分析软件--SDK开发实践》--- 北极星2003 &lt;br /&gt;《PE文件之旅》 ---  prince&lt;br /&gt;&lt;br /&gt;个人简介：&lt;br /&gt;马骏（Lenus Margin），生于1981.10.12，广西柳州 ，在度过了痛苦6年小学，比较痛苦的6年中学，现在在南京邮电大学度过非常痛苦的7年大学生活。本科专业是电子科学与技术（基本上和电子没有关系，关心的只是光子）。目前于南邮研究生二年级，继续研究“光学工程”专业“光通信与光信息处理” 方向。&lt;br /&gt;于2004年7月跨入密界，经过一年的潜水终于混成了菜鸟。不想上站一看，发现廉颇老矣。密界新人倍出，而老将背影还未曾望见。也罢，写此小文聊以慰籍。望各位看官走过路过，千万不要骂过….阿弥陀佛，善哉，善哉。&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-4158714814843042535?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/4158714814843042535/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=4158714814843042535' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/4158714814843042535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/4158714814843042535'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/dump.html' title='浅谈脱壳中的Dump技术'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-8291367077642686318</id><published>2009-05-08T21:16:00.000+08:00</published><updated>2009-05-08T21:17:10.563+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='双拼 练习 软件'/><title type='text'>双拼练习软件</title><content type='html'>&lt;a href="http://www.cnblogs.com/typingfaster/"&gt;http://www.cnblogs.com/typingfaster/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-8291367077642686318?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/8291367077642686318/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=8291367077642686318' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/8291367077642686318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/8291367077642686318'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_3286.html' title='双拼练习软件'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-7924971949982349027</id><published>2009-05-08T09:07:00.002+08:00</published><updated>2009-05-08T09:11:26.072+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='手机 掉 水里 怎么办'/><title type='text'>手机掉水里了怎么办？</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Simsun; font-size: 12px; line-height: 18px; "&gt;大家都说关机后电吹风吹干燥。这是很危险的。&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Simsun;font-size:100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Simsun; font-size: 12px; line-height: 18px; "&gt;正确的方法和程序是： &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Simsun; font-size: 12px; line-height: 18px; "&gt;★打捞手机&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Simsun; font-size: 12px; line-height: 18px; "&gt;★直接取出电池（注意，千万不要&lt;b&gt;关机和或点击任何手机键盘&lt;/b&gt;按钮，不然，十分容易造成短路而损害主板电路，那时候只能换主板了，那损失就大了）&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Simsun; font-size: 12px; line-height: 18px; "&gt;★用干布或干纸巾吸干表面水分&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Simsun; font-size: 12px; line-height: 18px; "&gt;★用电吹风吹干燥（如果有条件，在用电吹风吹干燥前最好用超声波清洗机清洗。另外，液晶片是不耐高温的，在&lt;b&gt;电吹风吹干时要十分小心&lt;/b&gt;。再另外，手机电路板的锡焊熔点很低，加上塑料外壳容易变形，因此，在电吹风吹干时温度千万不要调得过高。）。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Simsun; font-size: 12px; line-height: 18px; "&gt;★如果掉在污水里，而没有超声波清洗机清洗，建议到街边手机维修点（一般是２０－３０元）去清洗和吹干以防止主板慢慢清浊最终导致主板报废（这种小事用不着到手机品牌专门店去的－－－那里不仅贵而且更可恶的是你的手机维修被记录在档案－－－可能失去剩余保修了－－－到街边手机维修点去维修你的看好咯－－防止奸商对零部件调包呀）。&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-7924971949982349027?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/7924971949982349027/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=7924971949982349027' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7924971949982349027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7924971949982349027'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_08.html' title='手机掉水里了怎么办？'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-4648875077204133217</id><published>2009-05-07T22:25:00.002+08:00</published><updated>2009-05-08T17:38:28.081+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='讓愛傳出去、让爱传出去、把爱传出去'/><title type='text'>生命教育優良影片心得寫作—讓愛傳出去</title><content type='html'>【獲獎作品】生命教育優良影片心得寫作—讓愛傳出去&lt;br /&gt;转自：&lt;a href="http://blog.udn.com/jc0129/2430214"&gt;http://blog.udn.com/jc0129/2430214&lt;/a&gt;高二仁班葉宜靜2008/11/30&lt;br /&gt;「因為每件事都令人討厭，這世界實在爛透了！」當席莫奈老師問崔佛為什麼會有「把愛傳出去」這個構想時，崔佛是這麼告訴他的。在他們班上有些人認為這個主意不錯，而有些人認為很愚蠢，也許這個構想感覺上很理想化，但對一個只有七年級的小男生來講，能想出這麼好的點子真的很令人驚訝。&lt;br /&gt;在我們成長的過程中，會經歷許挫折、打擊和失敗，我們都知道改變一件事並不是說改變就改變那麼容易的，更何況是要我們改變世界呢？就如同片中的席莫奈老師一樣，他不願意去改變他先前原有的規律，只要稍有一點不同就整個亂掉，而崔佛卻想改變世界。很多人覺得世界太糟糕，卻很少人是起身而力行，為這個世界做個改變。&lt;br /&gt;「讓愛傳出去」這個構想是相信人性本善，方式則是以自己為中心，無條件的幫助其他三個人，必須是重大的而且是他們無法自己完成的事。而完成後的那三個人回報他的方式就是再繼續幫助其他三個人。像這樣一傳三、三傳九、九傳二十七的一直持續下去，很快就會傳開，崔佛深信，總有一天一定能改變整個世界。&lt;br /&gt;崔佛的家庭狀況並不是很好，他的父母都是酒鬼，而家裡只剩母親和他相依為命，母親為了能給他更好的生活，兼了兩份差事，早出晚歸，而忽略了要了解崔佛的感受。崔佛的母親在一次因為生氣而誤打了他一個耳光後，她承認了她自己的脆弱﹕「只要你支持我，只要你認為我可以戒酒成功，我就有動力繼續努力。」當一個人最脆弱時，最需要的就是別人的支持，這我深深地體會到，如果自己最親近的人都否決了自己，那在堅持下去也沒了意義。&lt;br /&gt;崔佛第一個幫助的是一個穿著失魂落魄的吸毒犯，崔佛幫他重回了自己，但要持續是很不容易的事情，因為在他周遭的朋友們都有著和他一樣的不良嗜好，環境會影響著一個人，而崔佛放棄了，他認為自己失敗了。但崔佛並不知道，在不久將來的某一天，這位吸毒範竟然幫助了一個因為失意而想不開的女子。崔佛幫助的第二個人，正是席莫奈老師，席莫奈老師因為從小父親帶給他的陰影，讓他對自己沒有自信。而崔佛讓他跳脫了那層牆，但因為崔佛的媽媽犯下了大錯，使席莫奈老師又把自己一層層的防護住，崔佛也認為，自己又失敗了。而他不知道，在他錄完影的那天，也解開了席莫奈老師的心結。&lt;br /&gt;後來，我想也許連崔佛的內心也開始矛盾了：「習慣原本生活的人不容易改變，就算現狀更遭，也很難改變，他們還是放棄了。」他開始掙扎，他知道只要一放棄，大家都會是輸家。也許他認為他嘗試的都沒有成功，也許他認為他努力了那麼久還是失敗了。最後他鼓起勇氣決定幫助亞當，但卻犧牲了自己的性命……。其實大家都知道，他是成功的！他大大的改變了整個世界，三個人，不多也不少，也許幫忙不一定會成功，但只要是用心的，我相信一定已經感動到所有的人了！&lt;br /&gt;===================== =====================&lt;br /&gt;让爱传出去 b (Pay It Forward)&lt;br /&gt;&lt;a href="http://v.youku.com/v_show/id_XNzY1ODM3MzI=.html"&gt;http://v.youku.com/v_show/id_XNzY1ODM3MzI=.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://v.youku.com/v_show/id_XNzY1ODM4MjA=.html"&gt;http://v.youku.com/v_show/id_XNzY1ODM4MjA=.html&lt;/a&gt;&lt;br /&gt;_______________&lt;br /&gt;外头有个世界 就算不情愿 也终究要面对&lt;br /&gt;你们（孩子们）最好开始思索这世界对你有何意义&lt;br /&gt;到底世界对我们有何期望？&lt;br /&gt;（现在）你们（是）不会开车、没有投票权 上厕所要经过我的允许，你们被迫来这儿读七年级&lt;br /&gt;但不是永远&lt;br /&gt;因为有一天你们会自由&lt;br /&gt;但若自由那天到来时&lt;br /&gt;你们还没准备好，你们还没准备&lt;br /&gt;在环顾四周，却不喜欢这个世界&lt;br /&gt;若这个世界令你们非常失望呢&lt;br /&gt;除非把世上不好的事物改善后&lt;br /&gt;________________&lt;br /&gt;习惯原本生活的人&lt;br /&gt;不容易改变&lt;br /&gt;&lt;br /&gt;就算现况很糟&lt;br /&gt;也很难改变&lt;br /&gt;&lt;br /&gt;他们还是放弃了&lt;br /&gt;他们一放弃&lt;br /&gt;每个人都是输家&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-4648875077204133217?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/4648875077204133217/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=4648875077204133217' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/4648875077204133217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/4648875077204133217'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_2069.html' title='生命教育優良影片心得寫作—讓愛傳出去'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-4839106647382756704</id><published>2009-05-07T13:10:00.003+08:00</published><updated>2009-05-07T13:17:13.806+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='清除烦恼'/><title type='text'>maxthon的“清除烦恼”</title><content type='html'>&lt;span class="postbody"&gt;&lt;img src="http://img468.imageshack.us/img468/7870/setcwf4.gif" border="0" /&gt;&lt;br /&gt;&lt;img src="http://img406.imageshack.us/img406/1926/menucot8.gif" border="0" /&gt;&lt;br /&gt;贴上从maxthon论坛找来的“清除烦恼”的贴图吧，大家也好知道是什么功能，能做到什么程度^_^&lt;br /&gt;&lt;br /&gt;那火狐也不能输掉啊&lt;br /&gt;1、&lt;/span&gt;&lt;span class="postbody"&gt;noscript应该可以做到“清除烦恼”的大部分功能（我主要用来解除文字拷贝限制 ）&lt;br /&gt;2、&lt;/span&gt;&lt;span class="postbody"&gt;虽然AdBlock Plus 扩展  高级功能不是很傻瓜化&lt;br /&gt;但我要再提下  Adblock Plus: Element Hiding Helper&lt;br /&gt;&lt;a href="http://adblockplus.org/downloads/elemhidehelper-1.0.5-zh-CN.xpi" target="_blank"&gt;http://adblockplus.org/downloads/elemhidehelper-1.0.5-zh-CN.xpi&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;然后按一下CTRL+SHIFT+K&lt;br /&gt;看见鼠标经过的地方有红框了么,想隐藏就点一下,预览一下,可以了点个确定....（我主要用来去除广告）&lt;br /&gt;&lt;/span&gt;&lt;span class="postbody"&gt;还可以，订阅adblock-chinalist： &lt;a href="http://code.google.com/p/adblock-chinalist/" target="_blank"&gt;http://code.google.com/p/adblock-chinalist/&lt;/a&gt;  &lt;br /&gt;至此广告已成为往事。&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-4839106647382756704?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/4839106647382756704/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=4839106647382756704' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/4839106647382756704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/4839106647382756704'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/maxthon.html' title='maxthon的“清除烦恼”'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-3446864088811497405</id><published>2009-05-07T13:05:00.001+08:00</published><updated>2009-05-07T13:05:45.934+08:00</updated><title type='text'>黑人角色改成白人 《让爱传出去》引发种族争议(附图)</title><content type='html'>&lt;center&gt;&lt;span style="font-size:180%;color:#000066;"&gt;&lt;b&gt;黑人角色改成白人 《让爱传出去》引发种族争议(附图)&lt;/b&gt;&lt;/span&gt;&lt;/center&gt; &lt;hr align="center"  width="520" style="font-size:78%;"&gt; &lt;center&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;http://ent.sina.com.cn 2000年10月20日14:54  广州日报大洋网&lt;/span&gt;&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;img src="http://ent.sina.com.cn/film/foreign/2000-10-20/28-3-19951_kaiwen.jpg" border="1" /&gt;&lt;/center&gt;  &lt;center&gt;凯文-史贝西尽管不是黑人，他可能最胜任的人&lt;/center&gt;  &lt;center&gt;&lt;img src="http://ent.sina.com.cn/film/foreign/2000-10-20/28-3-19951_mogen.jpg" /&gt; &lt;img src="http://ent.sina.com.cn/film/foreign/2000-10-20/28-3-19951_danzuohua.jpg" /&gt;&lt;/center&gt;  &lt;center&gt;由摩根-费里曼或丹佐-华盛顿出演更忠实原著&lt;/center&gt;  &lt;p&gt;　　大洋网讯 据美国《娱乐周刊》报道，即将于美国时间10月20日在美首映的《让爱传出去》(Pay It Forward)，拥有凯文-史贝西(Kevin Spacey)、海伦-杭特(Helen Hunt)和海利乔-奥斯蒙(Harley Joel Osment)组成的坚强阵容，是美国10月档期最被看好的电影。然而上片前却传出原著小说读者抗议的事件，为影片的宣传加添了一笔变数。&lt;/p&gt;  &lt;p&gt;　　原来《让爱传出去》是由凯萨琳-雷恩海德(Catherine Ryan Hyde)的畅销小说改编，但原著中凯文-史贝西饰演的颜面伤残教师应该是一个黑人。10月1日的《洛杉矶时报》便刊出一则读者投书，指出有许多优秀的黑 人演员如丹佐-华盛顿(Denzel Washington)和摩根-费里曼(Morgan Freeman)等都足以胜任这个角色，而且他和白人女主角谱出恋曲具有种族融合的特殊意义。但由身为白人的凯文-史贝西来演出，整个剧情将完全走样。&lt;/p&gt;  &lt;p&gt;　　一家产业报纸《黑种艺人新闻》(Black Talent News)的主编也附和这个说法，她表示如此一来便少了一个黑人演员演出主流电影要角的机会，也让银幕上少了一个具有正面形象的黑人角色。更糟的是，电影 中唯一的黑人角色却是一个小偷，更加深了黑人在银幕上的负面形象。&lt;/p&gt;  &lt;p&gt;　　不过凯萨琳雷恩海德本人并不在意这种角色安排。她承认收到一些读者的抗议信函，不过更多读者写信告诉她他们很欣赏凯文-史贝西的演技。凯萨琳 说：“如果你问我为什么觉得电影拍得很好，答案非常简单：他们找来凯文-史贝西就因为他是凯文-史贝西。他是相当优秀的演员…对这部电影会有很多贡献。” 她表示他的肤色为何并不重要，因为这正是她在书中所要强调的重点。凯萨琳相信只要大家去看《让爱传出去》，自然就能接受凯文-史贝西的表现。&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-3446864088811497405?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/3446864088811497405/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=3446864088811497405' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3446864088811497405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3446864088811497405'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_5239.html' title='黑人角色改成白人 《让爱传出去》引发种族争议(附图)'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-2225602321737438080</id><published>2009-05-07T13:02:00.001+08:00</published><updated>2009-05-07T13:03:44.153+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='让爱传出去、把愛傳出去'/><title type='text'>把愛傳出去---電影欣賞觀後感</title><content type='html'>此部電影的內容是描述美國某一個小鎮，一個社會學的老師，對七年級學生出一個作業題目，「如果認為這個世界讓人不滿意，讓人失望，那麼你要想一個方法，將這個社會這個世界重新改造一次，把不好的東西通通除去，不能只是空想，它必須能夠付諸實行，並且從自己開始執行。」於是主角崔佛，很用心認真的去思考尤金老師所出的題目，他想到的是：「把愛傳出去，以我為中心，他決定幫助三個人，他們不必回報自己，要求這三個人再各幫助三個人，受到幫助的人將以三的倍數成長！」於是在美國，有不少人因為此舉而感動，崔佛的愛自拉斯維加斯傳到了洛杉磯，結果愈來愈多的人受到別人的幫助，也不斷的再幫助別人，雖然最後他因為要將愛傳給別人，而被同儕誤殺，犧牲了寶貴的生命，但他的母親並未因此而怪罪兇手，確實的以愛來原諒他，讓愛傳出去！&lt;br /&gt;&lt;br /&gt;    看著這部真人實事的電影，不得不敬佩才13歲的孩子，能去正視這麼理想化的題目，遇到問題不屈不撓，努力勇往直前而且付諸行動，當崔佛幫助第一個人，將這個流浪漢帶回家，給他吃飯、洗澡，歷經了一些波折，爾後遊民也很感激崔佛，轉述他的理念挽救了欲跳河自殺的人。他也幫助善於把生活安排的井井有條的尤金老師，和為了撫養他辛苦工作酗酒的媽媽，雖然過程經歷了千辛萬苦，也遭遇不少的阻礙，但他並未因此而氣餒，最後促成老師和媽媽之間的良緣。&lt;br /&gt;&lt;br /&gt;    崔佛屢遭失敗，他不認為把愛傳了出去，最終出乎意料之外，這期間流浪漢、老師及媽媽還是將他的理念傳了出去。有位記者好奇這樣的理念，循線追查到崔佛，在記者採訪他之後，因意外而遭到不良少年的誤殺，消息迅速在媒體上傳開，晚上崔佛家的門外，擠滿了拿著蠟燭為他祈福的人潮，看到了這一幕讓我感動不已，淚流不止，我不知道他們是不是真的愛過，但從他們發自內心的舉動我看到他們對愛的感動，對崔佛的感動，崔佛他真正做到「愛灑人間，福植心田」無遠弗屆的把愛傳出去，此刻的我突然有股衝動也想點根燭火，向上天要一點愛，讓我知道世間還有著無私的愛。&lt;br /&gt;&lt;br /&gt;    「天上最美是星星，人間最美是溫情」看到崔佛的勇敢與愛心，衝擊著我們的心靈，我才真正去省思愛的真諦，我才了解所謂的「愛」，不單單只是狹隘的愛情或血緣間的情感。可是又是什麼樣的愛能讓人無所求的去幫助別人呢？能做到的是少之又少，若能把這股力量傳播出去，這份愛的心意，會為我們積福氣，我們應該學習崔佛一樣把愛傳出去，這個世界將會充滿著愛。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-2225602321737438080?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/2225602321737438080/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=2225602321737438080' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2225602321737438080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2225602321737438080'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_3404.html' title='把愛傳出去---電影欣賞觀後感'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-4626445473327947729</id><published>2009-05-07T12:44:00.002+08:00</published><updated>2009-05-08T22:09:55.431+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='电影、抢劫、教堂、第一个周日'/><title type='text'>《第一个周日》</title><content type='html'>《第一个周日》&lt;br /&gt;&lt;br /&gt;导演：大卫·E·塔尔博特&lt;br /&gt;主演：艾斯·古巴雷吉娜·霍尔PJ·伯恩卡特·威廉姆斯玛莉达·威廉姆斯&lt;br /&gt;上映： 2008年1月11日&lt;br /&gt;类型：犯罪片喜剧片&lt;br /&gt;地区：美国&lt;br /&gt;语言：英语&lt;br /&gt;&lt;br /&gt;目录&lt;br /&gt;[隐藏]&lt;br /&gt;• 剧情介绍&lt;br /&gt;• 幕后制作&lt;br /&gt;• 影片票房&lt;br /&gt;• 一句话评论&lt;br /&gt;《第一个周日》-剧情介绍&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;冰块酷巴《限制级战警2》与卡特威廉斯《糯米正传》 ，一动一喜演出动感爆笑剧 2个鳖脚的笨贼策划抢劫教会的募款，并且绑架教会教友及神职人员作为人质。没想到，笃信神迹的教友们，即将以上帝之名，齐力感化者两个天兵大盗…&lt;br /&gt;&lt;br /&gt;一 对最不可能成功的罪犯，被形势和生活所逼，决定铤而走险，豁出去捞一笔……德雷尔和利约翰虽然是从小一起长大的好朋友，他们的性格与经历却是截然相反的， 德雷尔有着清晰的思路和过人的才智，而且还受到过良好的教育--这样的人难道也要靠打劫为生吗？至于利约翰，真的是又傻又笨，他身边除了德雷尔这个一生的 好友，其他人见到他，都要绕道走，拒绝承认自己认识或曾经认识过利约翰。&lt;br /&gt;&lt;br /&gt;德雷尔和利约翰只要凑在一起，就喜欢装模作样地想着不劳而获的发 财“捷径”，事实证明，他们想到的方式，都是极度愚蠢无能加笨拙的。然而一件突然发生的事情，却逼着德雷尔不得不开始面对现实的残酷，他那脾气暴躁、喜欢 骂人的前女友正计划带着他们共同的儿子从马里兰州的巴尔的摩市搬到另一个州佐治亚去……这就意味着，本来就很少见到儿子的德雷尔，即将完全走出儿子的生 活。虽然只要德雷尔拿出1万7千美元，帮前女友还清债务，他们就不用离开了，可惜的是，德雷尔兜里一个子儿都没有。&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;火 烧眉毛之际，利约翰出了一个馊主意，那就是打劫邻街的教堂，里面正好有一笔建设资金还未转移……然而，当德雷尔和利约翰按照计划闯入教堂，战战兢兢地准备 行事时，却发现自己正好赶上了一次神圣的集会。最点儿背的是，已经有人先他们一步抢走了资金。万不得已的情况下，他们也只好把教堂里的人当成人质扣押起 来。&lt;br /&gt;&lt;br /&gt;冲突就这么爆发了，完全是在德雷尔和利约翰没办法预料的情况下开始的，卷入其中的分别有牧师和他那美丽的女儿、语速很快的执事和教堂 的秘书……哦，当然还有那个奢侈无节制的唱诗班执导--德雷尔没想到自己从抢劫犯一下子变成了和事佬，不仅如此，他还手贱地帮着教堂修好了损坏已久的空 调。不过，最终他们得到的，却远比当初计划和期望的，多得多。&lt;br /&gt;&lt;br /&gt;《第一个周日》-幕后制作&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;第二次合作&lt;br /&gt;&lt;br /&gt;对于主演之一卡特·威廉姆斯来说，影片最困难的地方，还在于他要如何将自己的搞怪喜剧风格变得友好和蔼，具有家庭的气息，不过对于他来说，一切过度都很顺利，威廉姆斯说：“我最感激的是，背后有我的家人一直支持着我。有些表演就是这样，不由自主就会展示你在生活中 的那一面，需要依靠你的性格和经历的范畴，就好像现在最流行的通俗文化，总能第一时间涌进你的脑子里，因为你最常接触它们，它们总是被讨论的焦点，这也是 在表演事业上所占比重非常大的一部分。但是，我也可以依靠我生活的环境进行一些转变，我的孩子从18个月到11岁都有，所以能够出演这部影片，然后带着他 们一起来看，对于我来说是目前最重要的事。”&lt;br /&gt;&lt;br /&gt;卡特·威廉姆斯在影片中饰演一位唱诗班的指导，这个角色仍然需要指望着他那特殊的喜剧表演风格。威廉姆斯说：“在美国黑人的教堂里做一名唱诗班导师，是一件重要且不讨好的事情，你不得不寻找一些能够存在于教堂中的最丰富的特性。我只是以一种喜剧的方式做了我该做的，虽然我希望观众不会从角色身上看到以往的影子，但地球人都知道，那几乎是不可能的。”&lt;br /&gt;&lt;br /&gt;众所周知，卡特·威廉姆斯是一个即兴表演的高手，只是不知道导演大卫·塔伯特是否能够容忍演员如此“放肆”，威廉姆斯说：“听起来确实有点疯狂，我最喜欢的事，就是在片场做一些有违剧本的表演。如果我能加进一些自己的东西，让这个角色更有趣的话，何乐而不为呢？我觉得我做的不错，塔伯特也显得挺满意的。虽然这部影片充满了戏剧性的时刻，我参与其中的却是少之又少，所以我想自己可能没什么机会偏离剧本，我觉得我的喜感还是与塔伯特的感觉比较同步的。”&lt;br /&gt;&lt;br /&gt;说到和艾斯·库珀一起表演的场景，卡特·威廉姆斯更是难掩兴奋之情，他说：“只要他一来到我的身边，我就会产生一种恐惧心理，我不知道为什么。可能因为库珀是我所见过的最专业的 人之一，他有的时候挺严厉的，不过那是因为他知道什么是对我们最好的。片场非常有组织有纪律，我相信也跟他有很大的干系。反正和他在一起，我知道了什么叫 ‘工作态度’。这已经是我第二次和库珀合作了，倒是导演大卫·塔伯特营造出了一种友好的气氛，稍稍缓和了片场紧张的压迫感。”&lt;br /&gt;&lt;br /&gt;卡特·威廉姆斯之前与艾斯·库珀共同出演的那部影片是《下下星期五》， 威廉姆斯在影片中饰演迈克，一个皮条客，与如今这部影片中的唱诗班指导可谓一个天上一个地下，可是威廉姆斯却表示：“对于我们来，任何角色都是一样的，那 就是我要深刻去体会一部喜剧所能带来的美感。我要确认我的角色真的有趣，然后尽可能地把这个特性展示出来。对于我来说，要做的决定确实太多了，比如角色的 外貌和呈现的状态，比如说声音听起来应该是什么样的……一切都需要具化。”&lt;br /&gt;&lt;br /&gt;而且，卡特·威廉姆斯和其他演员一样，对于在教堂拍 摄，多多少少有那么点别扭：“一开始挺困难的，但并没有想象中那么难以接受，因为许多影片都是在教堂实地拍摄的，比这部夸张得多的有的是，比如说有人在教 堂被杀死了……差不多开拍后的第4天，我认为我终于克服了这种心理障碍，然后说，‘好吧，我们拍电影呢，即使这里真的是属于上帝的地方，当我们拍电影的时 候，上帝是不会待在这里的。他可能去别的地方了，因为拍电影是一件无聊的事。’从那以后，我就感觉良好了。”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;导演是新丁&lt;br /&gt;&lt;br /&gt;影片讲述了一个滑稽古怪的搞笑故事，一对非常不称职又特别闹人的抢劫犯， 却被安置在了一个有趣且暖人心房的喜剧环境中，他们出于好的目的，做下了错误乃至不好的决定，最终获得了第二次机会。导演大卫·塔伯特虽然在这个行当混迹 多年，可是对于电影工业来说，却是一个不折不扣的新丁，当他谈及影片涉及的内容时，表示：“整个故事都是围绕着利约翰和德雷尔这两个角色展开的，他们因为 急需要一笔现金，于是决定冒险一搏，去了教堂。虽然他们将时间选在了第一个星期日，却并非是去做礼拜，而是打算抢劫教会的 钱……当传教士说，‘《玛拉基书》第三章问到了一个简单的问题，会有人去打劫上帝吗？’利约翰和德雷尔看了看彼此，不约而同地回答，‘该死的，当然会！’ 就这样，故事拉开了序幕。他们在第一个周日闯进了教堂，想偷一笔钱好还1万7千美元的债务，结果随着他们的闯入，一切开始趋于疯狂状态--钱没了，他们不 得不把教堂里的人劫持为人质，那里还在举办一场他们根本就不知道的集会，唱诗班也在进行着一次特别的练习，饰演唱诗班指导的是卡特·威廉姆斯(Katt Williams)。随后所有人都成了人质，却没有人知道钱到底哪儿去了。”&lt;br /&gt;&lt;br /&gt;对于在黑人演 员中非常有影响力的艾斯·库珀来说，除了表演，制片界也是他非常善于处理的部分，所以这一次他自然而然地身兼了制片人一职，导演大卫·塔伯特也表示和库珀 的合作非常地愉快：“其实片场真正担负起制片人工作的是马特·艾尔瓦勒兹(Matt Alvarez)，他带来的帮助，要比其他制片人都多。我计划下一次制作一部像《神奇四侠》的大预算动作片时，一定找他来当制片人。当然，这只是开玩笑，不过艾尔瓦勒兹确实是那种将一个有天分的制作团队充分连接在一起的人，他才是库珀的最佳拍档，当他们肩并肩共同进退的时候，你就会知道什么叫做通力合作了。他们真的有办法和门路卖掉剧本， 相对于制片人，库珀更适应演员的位置，他属于那种所有导演都梦寐以求的梦幻演员，你找不到比他更出色的人了，看看他演过多少伟大的角色……当他知道有些事 情不对的时候会说，‘嗨，你。’那意思就说你要结束，有问题出现了。对于我来说，库珀就好像一位老大哥，更像是一名导师，他在整个拍摄过程中，是我最佳的 顾问，帮助我转换自己的角色，能够更好的运用摄像机和画面，来讲述一个完整的故事。”&lt;br /&gt;&lt;br /&gt;那么，从没做过电影导演的大卫·塔伯特，又是如何成为这个光彩照人的制作团队的一员的呢？塔伯特回忆道：“我是创作剧本的那个人，这之前我就是一名剧作家， 不过都是一些舞台剧什么的。我的经理是一位制片人，我几年前告诉他这个故事点子，他说，‘兄弟，这是个不错的想法。我觉得你应该去见见蒂姆·斯托瑞，他正 好在寻找相似的题材。’然后我们就开始为故事物色演员了，但是总不能达成一致的意见，我当时就想，‘该死的，我可能永远当不成这部影片的导演了。’然后， 我们竟然得到了批准，我当时兴奋地都不敢相信这是真的，我要说的是，正是因为艾斯·库珀和马特·艾尔瓦勒兹的加盟，才让一切变得可行。他们带来的帮助，是 没办法用语言来形容的。”&lt;br /&gt;&lt;br /&gt;但最近接连上映了几部以描述美国黑人生活为主的家庭喜剧电影，如今大卫·塔伯特非要跟风而上，时机也许选得不对。他说：“虽然这是一部喜剧，但里面很多东西都挺真实的，属于喜剧中包含剧情类的故事，并非真正意义的家庭剧，里面也许会有一些你能从《理发店》中看到的温馨，也结合了我自己对整个故事的把握和灵魂。这就是我们的目的，制作一部让你发笑的喜剧，但是你又会觉得里面的表现形式非常地疯狂，但整体看下来，你就不会觉得它是一部单纯的喜剧了。”&lt;br /&gt;&lt;br /&gt;《第一个周日》-影片票房&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;票房榜的榜眼被由艾斯·库珀和崔西·摩根共同主演的《第一个周日》攻陷。这个讲述小混混抢劫教堂的故事，最终随着剧情成为一部时髦的励志电影。据说，这部电影中许多镜头是在教堂实拍摄，剧中甚至出现了有人在教堂被杀死的情节，一时让演员们都感到别扭。&lt;br /&gt;&lt;br /&gt;仔细分析，《第一个周日》的的票房成绩几乎与《遗愿清单》不相上下，未能登顶实属运气问题。票房专家说：“这两部影片的观众群非常不同，但是却都取得了比预期好的成绩。”由于圣诞和新年假期刚刚过去，一月属于人们重返忙碌工作的节日后市场，如此成绩在是影院比较冷清的阶段确实不易。&lt;br /&gt;&lt;br /&gt;索尼的发行经理称，《第一个周日》主打城市青年人群，选择放映的影院也多处闹市。散场调查显示，63%的观众为18到39岁，54%为女性，略出乎发行方的预料。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-4626445473327947729?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/4626445473327947729/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=4626445473327947729' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/4626445473327947729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/4626445473327947729'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_3229.html' title='《第一个周日》'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-5076100746785473890</id><published>2009-05-07T10:57:00.002+08:00</published><updated>2009-05-07T10:59:52.013+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASCII码表'/><title type='text'>ASCII码表</title><content type='html'>&lt;form action="http://www.weste.net/tools/ASCII.asp" method="post" name="characterCode"&gt;   &lt;h2&gt;ASCII码表在线查询(1.0 beta 1)&lt;/h2&gt;http://www.weste.net/tools/ASCII.asp&lt;br /&gt;&lt;br /&gt; &lt;p&gt;输入一个待查字符:     &lt;input name="character" size="10" type="text"&gt;     &lt;input name="Action" id="Action" value="Add" type="hidden"&gt;     &lt;input name="Submit" value="显示该键值" onclick="showKeyCode()" type="submit"&gt;     &lt;/p&gt; &lt;/form&gt; &lt;p&gt;    &lt;/p&gt; &lt;h3&gt;ASCII码对照表&lt;/h3&gt; &lt;p&gt;下表列出了字符集中的 0 - 127。 &lt;/p&gt; &lt;table bordercolordark="#000000" bordercolorlight="#ffffff" border="1" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr bgcolor="#cccccc" valign="top"&gt;     &lt;th width="12%"&gt;代码&lt;/th&gt;     &lt;th width="11%"&gt;字符&lt;/th&gt;     &lt;th width="12%"&gt;代码&lt;/th&gt;     &lt;th width="17%"&gt;字符&lt;/th&gt;     &lt;th width="12%"&gt;代码&lt;/th&gt;     &lt;th width="12%"&gt;字符&lt;/th&gt;     &lt;th width="12%"&gt;代码&lt;/th&gt;     &lt;th width="12%"&gt;字符&lt;/th&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;0&lt;/td&gt;     &lt;td width="11%"&gt; &lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;32&lt;/td&gt;     &lt;td width="17%"&gt;[空格]&lt;/td&gt;     &lt;td width="12%"&gt;64&lt;/td&gt;     &lt;td width="12%"&gt;@&lt;/td&gt;     &lt;td width="12%"&gt;96&lt;/td&gt;     &lt;td width="12%"&gt;`&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;1&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;33&lt;/td&gt;     &lt;td width="17%"&gt;!&lt;/td&gt;     &lt;td width="12%"&gt;65&lt;/td&gt;     &lt;td width="12%"&gt;A&lt;/td&gt;     &lt;td width="12%"&gt;97&lt;/td&gt;     &lt;td width="12%"&gt;a&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;2&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;34&lt;/td&gt;     &lt;td width="17%"&gt;"&lt;/td&gt;     &lt;td width="12%"&gt;66&lt;/td&gt;     &lt;td width="12%"&gt;B&lt;/td&gt;     &lt;td width="12%"&gt;98&lt;/td&gt;     &lt;td width="12%"&gt;b&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;3&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;35&lt;/td&gt;     &lt;td width="17%"&gt;#&lt;/td&gt;     &lt;td width="12%"&gt;67&lt;/td&gt;     &lt;td width="12%"&gt;C&lt;/td&gt;     &lt;td width="12%"&gt;99&lt;/td&gt;     &lt;td width="12%"&gt;c&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;4&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;36&lt;/td&gt;     &lt;td width="17%"&gt;$&lt;/td&gt;     &lt;td width="12%"&gt;68&lt;/td&gt;     &lt;td width="12%"&gt;D&lt;/td&gt;     &lt;td width="12%"&gt;100&lt;/td&gt;     &lt;td width="12%"&gt;d&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;5&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;37&lt;/td&gt;     &lt;td width="17%"&gt;%&lt;/td&gt;     &lt;td width="12%"&gt;69&lt;/td&gt;     &lt;td width="12%"&gt;E&lt;/td&gt;     &lt;td width="12%"&gt;101&lt;/td&gt;     &lt;td width="12%"&gt;e&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;6&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;38&lt;/td&gt;     &lt;td width="17%"&gt;&amp;amp;&lt;/td&gt;     &lt;td width="12%"&gt;70&lt;/td&gt;     &lt;td width="12%"&gt;F&lt;/td&gt;     &lt;td width="12%"&gt;102&lt;/td&gt;     &lt;td width="12%"&gt;f&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;7&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;39&lt;/td&gt;     &lt;td width="17%"&gt;'&lt;/td&gt;     &lt;td width="12%"&gt;71&lt;/td&gt;     &lt;td width="12%"&gt;G&lt;/td&gt;     &lt;td width="12%"&gt;103&lt;/td&gt;     &lt;td width="12%"&gt;g&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;8&lt;/td&gt;     &lt;td width="11%"&gt;**&lt;/td&gt;     &lt;td width="12%"&gt;40&lt;/td&gt;     &lt;td width="17%"&gt;(&lt;/td&gt;     &lt;td width="12%"&gt;72&lt;/td&gt;     &lt;td width="12%"&gt;H&lt;/td&gt;     &lt;td width="12%"&gt;104&lt;/td&gt;     &lt;td width="12%"&gt;h&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;9&lt;/td&gt;     &lt;td width="11%"&gt;**&lt;/td&gt;     &lt;td width="12%"&gt;41&lt;/td&gt;     &lt;td width="17%"&gt;)&lt;/td&gt;     &lt;td width="12%"&gt;73&lt;/td&gt;     &lt;td width="12%"&gt;I&lt;/td&gt;     &lt;td width="12%"&gt;105&lt;/td&gt;     &lt;td width="12%"&gt;i&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;10&lt;/td&gt;     &lt;td width="11%"&gt;**&lt;/td&gt;     &lt;td width="12%"&gt;42&lt;/td&gt;     &lt;td width="17%"&gt;*&lt;/td&gt;     &lt;td width="12%"&gt;74&lt;/td&gt;     &lt;td width="12%"&gt;J&lt;/td&gt;     &lt;td width="12%"&gt;106&lt;/td&gt;     &lt;td width="12%"&gt;j&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;11&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;43&lt;/td&gt;     &lt;td width="17%"&gt;+&lt;/td&gt;     &lt;td width="12%"&gt;75&lt;/td&gt;     &lt;td width="12%"&gt;K&lt;/td&gt;     &lt;td width="12%"&gt;107&lt;/td&gt;     &lt;td width="12%"&gt;k&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;12&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;44&lt;/td&gt;     &lt;td width="17%"&gt;,&lt;/td&gt;     &lt;td width="12%"&gt;76&lt;/td&gt;     &lt;td width="12%"&gt;L&lt;/td&gt;     &lt;td width="12%"&gt;108&lt;/td&gt;     &lt;td width="12%"&gt;l&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;13&lt;/td&gt;     &lt;td width="11%"&gt;**&lt;/td&gt;     &lt;td width="12%"&gt;45&lt;/td&gt;     &lt;td width="17%"&gt;-&lt;/td&gt;     &lt;td width="12%"&gt;77&lt;/td&gt;     &lt;td width="12%"&gt;M&lt;/td&gt;     &lt;td width="12%"&gt;109&lt;/td&gt;     &lt;td width="12%"&gt;m&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;14&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;46&lt;/td&gt;     &lt;td width="17%"&gt;.&lt;/td&gt;     &lt;td width="12%"&gt;78&lt;/td&gt;     &lt;td width="12%"&gt;N&lt;/td&gt;     &lt;td width="12%"&gt;110&lt;/td&gt;     &lt;td width="12%"&gt;n&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;15&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;47&lt;/td&gt;     &lt;td width="17%"&gt;/&lt;/td&gt;     &lt;td width="12%"&gt;79&lt;/td&gt;     &lt;td width="12%"&gt;O&lt;/td&gt;     &lt;td width="12%"&gt;111&lt;/td&gt;     &lt;td width="12%"&gt;o&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;16&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;48&lt;/td&gt;     &lt;td width="17%"&gt;0&lt;/td&gt;     &lt;td width="12%"&gt;80&lt;/td&gt;     &lt;td width="12%"&gt;P&lt;/td&gt;     &lt;td width="12%"&gt;112&lt;/td&gt;     &lt;td width="12%"&gt;p&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;17&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;49&lt;/td&gt;     &lt;td width="17%"&gt;1&lt;/td&gt;     &lt;td width="12%"&gt;81&lt;/td&gt;     &lt;td width="12%"&gt;Q&lt;/td&gt;     &lt;td width="12%"&gt;113&lt;/td&gt;     &lt;td width="12%"&gt;q&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;18&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;50&lt;/td&gt;     &lt;td width="17%"&gt;2&lt;/td&gt;     &lt;td width="12%"&gt;82&lt;/td&gt;     &lt;td width="12%"&gt;R&lt;/td&gt;     &lt;td width="12%"&gt;114&lt;/td&gt;     &lt;td width="12%"&gt;r&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;19&lt;/td&gt;     &lt;td width="11%"&gt;&lt;/td&gt;     &lt;td width="12%"&gt;51&lt;/td&gt;     &lt;td width="17%"&gt;3&lt;/td&gt;     &lt;td width="12%"&gt;83&lt;/td&gt;     &lt;td width="12%"&gt;S&lt;/td&gt;     &lt;td width="12%"&gt;115&lt;/td&gt;     &lt;td width="12%"&gt;s&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;20&lt;/td&gt;     &lt;td width="11%"&gt;&lt;/td&gt;     &lt;td width="12%"&gt;52&lt;/td&gt;     &lt;td width="17%"&gt;4&lt;/td&gt;     &lt;td width="12%"&gt;84&lt;/td&gt;     &lt;td width="12%"&gt;T&lt;/td&gt;     &lt;td width="12%"&gt;116&lt;/td&gt;     &lt;td width="12%"&gt;t&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;21&lt;/td&gt;     &lt;td width="11%"&gt;&lt;/td&gt;     &lt;td width="12%"&gt;53&lt;/td&gt;     &lt;td width="17%"&gt;5&lt;/td&gt;     &lt;td width="12%"&gt;85&lt;/td&gt;     &lt;td width="12%"&gt;U&lt;/td&gt;     &lt;td width="12%"&gt;117&lt;/td&gt;     &lt;td width="12%"&gt;u&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;22&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;54&lt;/td&gt;     &lt;td width="17%"&gt;6&lt;/td&gt;     &lt;td width="12%"&gt;86&lt;/td&gt;     &lt;td width="12%"&gt;V&lt;/td&gt;     &lt;td width="12%"&gt;118&lt;/td&gt;     &lt;td width="12%"&gt;v&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;23&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;55&lt;/td&gt;     &lt;td width="17%"&gt;7&lt;/td&gt;     &lt;td width="12%"&gt;87&lt;/td&gt;     &lt;td width="12%"&gt;W&lt;/td&gt;     &lt;td width="12%"&gt;119&lt;/td&gt;     &lt;td width="12%"&gt;w&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;24&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;56&lt;/td&gt;     &lt;td width="17%"&gt;8&lt;/td&gt;     &lt;td width="12%"&gt;88&lt;/td&gt;     &lt;td width="12%"&gt;X&lt;/td&gt;     &lt;td width="12%"&gt;120&lt;/td&gt;     &lt;td width="12%"&gt;x&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;25&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;57&lt;/td&gt;     &lt;td width="17%"&gt;9&lt;/td&gt;     &lt;td width="12%"&gt;89&lt;/td&gt;     &lt;td width="12%"&gt;Y&lt;/td&gt;     &lt;td width="12%"&gt;121&lt;/td&gt;     &lt;td width="12%"&gt;y&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;26&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;58&lt;/td&gt;     &lt;td width="17%"&gt;:&lt;/td&gt;     &lt;td width="12%"&gt;90&lt;/td&gt;     &lt;td width="12%"&gt;Z&lt;/td&gt;     &lt;td width="12%"&gt;122&lt;/td&gt;     &lt;td width="12%"&gt;z&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;27&lt;/td&gt;     &lt;td width="11%"&gt;&lt;/td&gt;     &lt;td width="12%"&gt;59&lt;/td&gt;     &lt;td width="17%"&gt;;&lt;/td&gt;     &lt;td width="12%"&gt;91&lt;/td&gt;     &lt;td width="12%"&gt;[&lt;/td&gt;     &lt;td width="12%"&gt;123&lt;/td&gt;     &lt;td width="12%"&gt;{&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;28&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;60&lt;/td&gt;     &lt;td width="17%"&gt;&lt;&lt;/td&gt;     &lt;td width="12%"&gt;92&lt;/td&gt;     &lt;td width="12%"&gt;\&lt;/td&gt;     &lt;td width="12%"&gt;124&lt;/td&gt;     &lt;td width="12%"&gt;|&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;29&lt;/td&gt;     &lt;td width="11%"&gt;�&lt;/td&gt;     &lt;td width="12%"&gt;61&lt;/td&gt;     &lt;td width="17%"&gt;=&lt;/td&gt;     &lt;td width="12%"&gt;93&lt;/td&gt;     &lt;td width="12%"&gt;]&lt;/td&gt;     &lt;td width="12%"&gt;125&lt;/td&gt;     &lt;td width="12%"&gt;}&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;30&lt;/td&gt;     &lt;td width="11%"&gt;-&lt;/td&gt;     &lt;td width="12%"&gt;62&lt;/td&gt;     &lt;td width="17%"&gt;&gt;&lt;/td&gt;     &lt;td width="12%"&gt;94&lt;/td&gt;     &lt;td width="12%"&gt;^&lt;/td&gt;     &lt;td width="12%"&gt;126&lt;/td&gt;     &lt;td width="12%"&gt;~&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;31&lt;/td&gt;     &lt;td width="11%"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;td width="12%"&gt;63&lt;/td&gt;     &lt;td width="17%"&gt;?&lt;/td&gt;     &lt;td width="12%"&gt;95&lt;/td&gt;     &lt;td width="12%"&gt;_&lt;/td&gt;     &lt;td width="12%"&gt;127&lt;/td&gt;     &lt;td width="12%"&gt;�&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;下表列出了字符集中的 128 - 255。&lt;/p&gt; &lt;table bordercolordark="#000000" bordercolorlight="#ffffff" border="1" cellpadding="0" cellspacing="0"&gt;   &lt;tbody&gt;&lt;tr bgcolor="#cccccc" valign="top"&gt;     &lt;th width="12%"&gt;代码&lt;/th&gt;     &lt;th width="12%"&gt;字符&lt;/th&gt;     &lt;th width="11%"&gt;代码&lt;/th&gt;     &lt;th width="17%"&gt;字符&lt;/th&gt;     &lt;th width="12%"&gt;代码&lt;/th&gt;     &lt;th width="12%"&gt;字符&lt;/th&gt;     &lt;th width="11%"&gt;代码&lt;/th&gt;     &lt;th width="13%"&gt;字符&lt;/th&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;128&lt;/td&gt;     &lt;td width="12%"&gt;€&lt;/td&gt;     &lt;td width="11%"&gt;160&lt;/td&gt;     &lt;td width="17%"&gt;[空格]&lt;/td&gt;     &lt;td width="12%"&gt;192&lt;/td&gt;     &lt;td width="12%"&gt;À&lt;/td&gt;     &lt;td width="11%"&gt;224&lt;/td&gt;     &lt;td width="13%"&gt;à&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;129&lt;/td&gt;     &lt;td width="12%"&gt;�&lt;/td&gt;     &lt;td width="11%"&gt;161&lt;/td&gt;     &lt;td width="17%"&gt;¡&lt;/td&gt;     &lt;td width="12%"&gt;193&lt;/td&gt;     &lt;td width="12%"&gt;Á&lt;/td&gt;     &lt;td width="11%"&gt;225&lt;/td&gt;     &lt;td width="13%"&gt;á&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;130&lt;/td&gt;     &lt;td width="12%"&gt;‚&lt;/td&gt;     &lt;td width="11%"&gt;162&lt;/td&gt;     &lt;td width="17%"&gt;¢&lt;/td&gt;     &lt;td width="12%"&gt;194&lt;/td&gt;     &lt;td width="12%"&gt;Â&lt;/td&gt;     &lt;td width="11%"&gt;226&lt;/td&gt;     &lt;td width="13%"&gt;â&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;131&lt;/td&gt;     &lt;td width="12%"&gt;ƒ&lt;/td&gt;     &lt;td width="11%"&gt;163&lt;/td&gt;     &lt;td width="17%"&gt;£&lt;/td&gt;     &lt;td width="12%"&gt;195&lt;/td&gt;     &lt;td width="12%"&gt;Ã&lt;/td&gt;     &lt;td width="11%"&gt;227&lt;/td&gt;     &lt;td width="13%"&gt;ã&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;132&lt;/td&gt;     &lt;td width="12%"&gt;„&lt;/td&gt;     &lt;td width="11%"&gt;164&lt;/td&gt;     &lt;td width="17%"&gt;¤&lt;/td&gt;     &lt;td width="12%"&gt;196&lt;/td&gt;     &lt;td width="12%"&gt;Ä&lt;/td&gt;     &lt;td width="11%"&gt;228&lt;/td&gt;     &lt;td width="13%"&gt;ä&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;133&lt;/td&gt;     &lt;td width="12%"&gt;…&lt;/td&gt;     &lt;td width="11%"&gt;165&lt;/td&gt;     &lt;td width="17%"&gt;¥&lt;/td&gt;     &lt;td width="12%"&gt;197&lt;/td&gt;     &lt;td width="12%"&gt;Å&lt;/td&gt;     &lt;td width="11%"&gt;229&lt;/td&gt;     &lt;td width="13%"&gt;å&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;134&lt;/td&gt;     &lt;td width="12%"&gt;†&lt;/td&gt;     &lt;td width="11%"&gt;166&lt;/td&gt;     &lt;td width="17%"&gt;¦&lt;/td&gt;     &lt;td width="12%"&gt;198&lt;/td&gt;     &lt;td width="12%"&gt;Æ&lt;/td&gt;     &lt;td width="11%"&gt;230&lt;/td&gt;     &lt;td width="13%"&gt;æ&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;135&lt;/td&gt;     &lt;td width="12%"&gt;‡&lt;/td&gt;     &lt;td width="11%"&gt;167&lt;/td&gt;     &lt;td width="17%"&gt;§&lt;/td&gt;     &lt;td width="12%"&gt;199&lt;/td&gt;     &lt;td width="12%"&gt;Ç&lt;/td&gt;     &lt;td width="11%"&gt;231&lt;/td&gt;     &lt;td width="13%"&gt;ç&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;136&lt;/td&gt;     &lt;td width="12%"&gt;ˆ&lt;/td&gt;     &lt;td width="11%"&gt;168&lt;/td&gt;     &lt;td width="17%"&gt;¨&lt;/td&gt;     &lt;td width="12%"&gt;200&lt;/td&gt;     &lt;td width="12%"&gt;È&lt;/td&gt;     &lt;td width="11%"&gt;231&lt;/td&gt;     &lt;td width="13%"&gt;ç&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;137&lt;/td&gt;     &lt;td width="12%"&gt;‰&lt;/td&gt;     &lt;td width="11%"&gt;169&lt;/td&gt;     &lt;td width="17%"&gt;©&lt;/td&gt;     &lt;td width="12%"&gt;201&lt;/td&gt;     &lt;td width="12%"&gt;É&lt;/td&gt;     &lt;td width="11%"&gt;232&lt;/td&gt;     &lt;td width="13%"&gt;è&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;138&lt;/td&gt;     &lt;td width="12%"&gt;Š&lt;/td&gt;     &lt;td width="11%"&gt;170&lt;/td&gt;     &lt;td width="17%"&gt;ª&lt;/td&gt;     &lt;td width="12%"&gt;202&lt;/td&gt;     &lt;td width="12%"&gt;Ê&lt;/td&gt;     &lt;td width="11%"&gt;233&lt;/td&gt;     &lt;td width="13%"&gt;é&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;139&lt;/td&gt;     &lt;td width="12%"&gt;‹&lt;/td&gt;     &lt;td width="11%"&gt;171&lt;/td&gt;     &lt;td width="17%"&gt;«&lt;/td&gt;     &lt;td width="12%"&gt;203&lt;/td&gt;     &lt;td width="12%"&gt;Ë&lt;/td&gt;     &lt;td width="11%"&gt;234&lt;/td&gt;     &lt;td width="13%"&gt;ê&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;140&lt;/td&gt;     &lt;td width="12%"&gt;Œ&lt;/td&gt;     &lt;td width="11%"&gt;172&lt;/td&gt;     &lt;td width="17%"&gt;¬&lt;/td&gt;     &lt;td width="12%"&gt;204&lt;/td&gt;     &lt;td width="12%"&gt;Ì&lt;/td&gt;     &lt;td width="11%"&gt;235&lt;/td&gt;     &lt;td width="13%"&gt;ë&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;141&lt;/td&gt;     &lt;td width="12%"&gt;�&lt;/td&gt;     &lt;td width="11%"&gt;173&lt;/td&gt;     &lt;td width="17%"&gt;­&lt;/td&gt;     &lt;td width="12%"&gt;205&lt;/td&gt;     &lt;td width="12%"&gt;Í&lt;/td&gt;     &lt;td width="11%"&gt;236&lt;/td&gt;     &lt;td width="13%"&gt;ì&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;142&lt;/td&gt;     &lt;td width="12%"&gt;Ž&lt;/td&gt;     &lt;td width="11%"&gt;174&lt;/td&gt;     &lt;td width="17%"&gt;®&lt;/td&gt;     &lt;td width="12%"&gt;206&lt;/td&gt;     &lt;td width="12%"&gt;Î&lt;/td&gt;     &lt;td width="11%"&gt;237&lt;/td&gt;     &lt;td width="13%"&gt;í&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;143&lt;/td&gt;     &lt;td width="12%"&gt;�&lt;/td&gt;     &lt;td width="11%"&gt;175&lt;/td&gt;     &lt;td width="17%"&gt;¯&lt;/td&gt;     &lt;td width="12%"&gt;207&lt;/td&gt;     &lt;td width="12%"&gt;Ï&lt;/td&gt;     &lt;td width="11%"&gt;238&lt;/td&gt;     &lt;td width="13%"&gt;î&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;144&lt;/td&gt;     &lt;td width="12%"&gt;�&lt;/td&gt;     &lt;td width="11%"&gt;176&lt;/td&gt;     &lt;td width="17%"&gt;°&lt;/td&gt;     &lt;td width="12%"&gt;208&lt;/td&gt;     &lt;td width="12%"&gt;Ð&lt;/td&gt;     &lt;td width="11%"&gt;239&lt;/td&gt;     &lt;td width="13%"&gt;ï&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;145&lt;/td&gt;     &lt;td width="12%"&gt;‘&lt;/td&gt;     &lt;td width="11%"&gt;177&lt;/td&gt;     &lt;td width="17%"&gt;±&lt;/td&gt;     &lt;td width="12%"&gt;209&lt;/td&gt;     &lt;td width="12%"&gt;Ñ&lt;/td&gt;     &lt;td width="11%"&gt;240&lt;/td&gt;     &lt;td width="13%"&gt;ð&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;146&lt;/td&gt;     &lt;td width="12%"&gt;’&lt;/td&gt;     &lt;td width="11%"&gt;178&lt;/td&gt;     &lt;td width="17%"&gt;²&lt;/td&gt;     &lt;td width="12%"&gt;210&lt;/td&gt;     &lt;td width="12%"&gt;Ò&lt;/td&gt;     &lt;td width="11%"&gt;241&lt;/td&gt;     &lt;td width="13%"&gt;ñ&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;147&lt;/td&gt;     &lt;td width="12%"&gt;“&lt;/td&gt;     &lt;td width="11%"&gt;179&lt;/td&gt;     &lt;td width="17%"&gt;³&lt;/td&gt;     &lt;td width="12%"&gt;211&lt;/td&gt;     &lt;td width="12%"&gt;Ó&lt;/td&gt;     &lt;td width="11%"&gt;242&lt;/td&gt;     &lt;td width="13%"&gt;ò&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;148&lt;/td&gt;     &lt;td width="12%"&gt;”&lt;/td&gt;     &lt;td width="11%"&gt;180&lt;/td&gt;     &lt;td width="17%"&gt;´&lt;/td&gt;     &lt;td width="12%"&gt;212&lt;/td&gt;     &lt;td width="12%"&gt;Ô&lt;/td&gt;     &lt;td width="11%"&gt;243&lt;/td&gt;     &lt;td width="13%"&gt;ó&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;149&lt;/td&gt;     &lt;td width="12%"&gt;•&lt;/td&gt;     &lt;td width="11%"&gt;181&lt;/td&gt;     &lt;td width="17%"&gt;µ&lt;/td&gt;     &lt;td width="12%"&gt;213&lt;/td&gt;     &lt;td width="12%"&gt;Õ&lt;/td&gt;     &lt;td width="11%"&gt;244&lt;/td&gt;     &lt;td width="13%"&gt;ô&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;150&lt;/td&gt;     &lt;td width="12%"&gt;–&lt;/td&gt;     &lt;td width="11%"&gt;182&lt;/td&gt;     &lt;td width="17%"&gt;¶&lt;/td&gt;     &lt;td width="12%"&gt;214&lt;/td&gt;     &lt;td width="12%"&gt;Ö&lt;/td&gt;     &lt;td width="11%"&gt;245&lt;/td&gt;     &lt;td width="13%"&gt;õ&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;151&lt;/td&gt;     &lt;td width="12%"&gt;—&lt;/td&gt;     &lt;td width="11%"&gt;183&lt;/td&gt;     &lt;td width="17%"&gt;·&lt;/td&gt;     &lt;td width="12%"&gt;215&lt;/td&gt;     &lt;td width="12%"&gt;×&lt;/td&gt;     &lt;td width="11%"&gt;246&lt;/td&gt;     &lt;td width="13%"&gt;ö&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;152&lt;/td&gt;     &lt;td width="12%"&gt;˜&lt;/td&gt;     &lt;td width="11%"&gt;184&lt;/td&gt;     &lt;td width="17%"&gt;¸&lt;/td&gt;     &lt;td width="12%"&gt;216&lt;/td&gt;     &lt;td width="12%"&gt;Ø&lt;/td&gt;     &lt;td width="11%"&gt;247&lt;/td&gt;     &lt;td width="13%"&gt;÷&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;153&lt;/td&gt;     &lt;td width="12%"&gt;™&lt;/td&gt;     &lt;td width="11%"&gt;185&lt;/td&gt;     &lt;td width="17%"&gt;¹&lt;/td&gt;     &lt;td width="12%"&gt;217&lt;/td&gt;     &lt;td width="12%"&gt;Ù&lt;/td&gt;     &lt;td width="11%"&gt;248&lt;/td&gt;     &lt;td width="13%"&gt;ø&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;154&lt;/td&gt;     &lt;td width="12%"&gt;š&lt;/td&gt;     &lt;td width="11%"&gt;186&lt;/td&gt;     &lt;td width="17%"&gt;º&lt;/td&gt;     &lt;td width="12%"&gt;218&lt;/td&gt;     &lt;td width="12%"&gt;Ú&lt;/td&gt;     &lt;td width="11%"&gt;249&lt;/td&gt;     &lt;td width="13%"&gt;ù&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;155&lt;/td&gt;     &lt;td width="12%"&gt;›&lt;/td&gt;     &lt;td width="11%"&gt;187&lt;/td&gt;     &lt;td width="17%"&gt;»&lt;/td&gt;     &lt;td width="12%"&gt;219&lt;/td&gt;     &lt;td width="12%"&gt;Û&lt;/td&gt;     &lt;td width="11%"&gt;250&lt;/td&gt;     &lt;td width="13%"&gt;ú&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;156&lt;/td&gt;     &lt;td width="12%"&gt;œ&lt;/td&gt;     &lt;td width="11%"&gt;188&lt;/td&gt;     &lt;td width="17%"&gt;¼&lt;/td&gt;     &lt;td width="12%"&gt;220&lt;/td&gt;     &lt;td width="12%"&gt;Ü&lt;/td&gt;     &lt;td width="11%"&gt;251&lt;/td&gt;     &lt;td width="13%"&gt;û&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;157&lt;/td&gt;     &lt;td width="12%"&gt;�&lt;/td&gt;     &lt;td width="11%"&gt;189&lt;/td&gt;     &lt;td width="17%"&gt;½&lt;/td&gt;     &lt;td width="12%"&gt;221&lt;/td&gt;     &lt;td width="12%"&gt;Ý&lt;/td&gt;     &lt;td width="11%"&gt;252&lt;/td&gt;     &lt;td width="13%"&gt;ü&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;158&lt;/td&gt;     &lt;td width="12%"&gt;ž&lt;/td&gt;     &lt;td width="11%"&gt;190&lt;/td&gt;     &lt;td width="17%"&gt;¾&lt;/td&gt;     &lt;td width="12%"&gt;222&lt;/td&gt;     &lt;td width="12%"&gt;Þ&lt;/td&gt;     &lt;td width="11%"&gt;253&lt;/td&gt;     &lt;td width="13%"&gt;ý&lt;/td&gt;   &lt;/tr&gt;   &lt;tr valign="top"&gt;     &lt;td width="12%"&gt;159&lt;/td&gt;     &lt;td width="12%"&gt;Ÿ&lt;/td&gt;     &lt;td width="11%"&gt;191&lt;/td&gt;     &lt;td width="17%"&gt;¿&lt;/td&gt;     &lt;td width="12%"&gt;223&lt;/td&gt;     &lt;td width="12%"&gt;ß&lt;/td&gt;     &lt;td width="11%"&gt;254&lt;/td&gt;     &lt;td width="13%"&gt;þ&lt;/td&gt;   &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;** 数值 8、9、10 和 13 可以分别转换为退格符、制表符、换行符和回车符。这些字符都没有图形表示，但是对于不同的应用程序，这些字符可能会影响文本的显示效果。 &lt;/p&gt; &lt;p&gt;"空" 表示在当前平台上不支持的字符。 &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-5076100746785473890?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/5076100746785473890/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=5076100746785473890' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/5076100746785473890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/5076100746785473890'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/ascii.html' title='ASCII码表'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-2414280220510447144</id><published>2009-05-07T10:52:00.001+08:00</published><updated>2009-05-07T10:56:45.222+08:00</updated><title type='text'>什么是TM，它与圆圈R的区别</title><content type='html'>在中国，商标上的TM也有其特殊含义，其实TM标志并非对商标起到保护作用，它与R不同，TM表示的是该商标已经向国家商标局提出申请，并且国家商标局也已经下发了《受理通知书》，进入了异议期，这样就可以防止其他人提出重复申请，也表示现有商标持有人有优先使用权。&lt;br /&gt;&lt;br /&gt;用圆圈R，是“注册商标”的标记，意思是该商标已在国家商标局进行注册申请并已经商标局审查通过，成为注册商标。圆圈里的R是英文register注册的开头字母。&lt;br /&gt;注册商标具有排他性、独占性、唯一性等特点，属于注册商标所有人所独占，受法律保护，任何企业或个人未经注册商标所有权人许可或授权，均不可自行使用，否则将承担侵权责任。&lt;br /&gt;用TM则是商标符号的意思，即标注TM的文字、图形或符号是商标，但不一定已经注册（未经注册的不受法律保护）。TM是英文trademark的缩写。&lt;br /&gt;&lt;br /&gt;什么是TM,R标志?TM是什么意思? 在有的产品商标说明中，注明××TM，那么这个××是否是已经注册了的商标呢？因为在我国注册的商标一般会有 r标记，而非TM那么这个TM和R有什么区别和联系呢？ 答： TM是TRADEMARK的缩写，美国的商标通常加注TM，并不一定是指已注册商标。而R是REGISTER的缩写，用在商标上是指注册商标的意思，我国商标法实施条例规定，使用注册商标，可以在商品、商品包装、说明书或者其他附着物上标明“注册商标”或者注册标记。注册标记包括（注外加○）和（R外加 ○）。使用注册标记，应当标注在商标的右上角或者右下角。因此，TM与R是不同国家的商标标记，没有特别的关系，也有一些国内公司不了解法律规定，一味模仿美国公司，在商标上使用TM标记。&lt;br /&gt;&lt;br /&gt;注册商标(registration )&lt;br /&gt;中国是“R”加“圆圈”&lt;br /&gt;注册商标(Trademark)&lt;br /&gt;国际通行的为"TM"&lt;br /&gt;&lt;br /&gt;根据修订的《实施细则》，注册商标的标注方式只有三种方式，就是在注册商标后面加注：A、“注册商标”四个中文字，B、“注”字，注字外面加一个圆圈，C、“R”，R外面加一个圆圈。除此其他任何标注方式都是不符合法律规定的。&lt;br /&gt;&lt;br /&gt;“TM”是注册商标的英文简写，不管其他国家如何规定，我们国家《商标法》是不认可TM的，标注“TM”在我国不代表任何意义。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C是copy rights 的缩写，意指版权，用来标明版权。&lt;br /&gt;版权符号©是怎么打出来的？&lt;br /&gt;2007年05月03日 星期四 上午 10:09&lt;br /&gt;&lt;br /&gt;[转贴]版权符号©是怎么打出来的&lt;br /&gt;版权符号©有很多种方法可以实现，只适合于Win2000或Win2000以上的版本：&lt;br /&gt;1、按住Alt键不放，然后输入169。松开Alt键后，就可以打出©号来。&lt;br /&gt;特别注意：输入的这些数字必须使用键盘右边的那些数字键才有效(俗称小键盘)。并且确保数字灯是亮着的，如果不亮，就按一次Num Lock。&lt;br /&gt;2、写入源代码©，或者?均可，它们是完全等效的。&lt;br /&gt;3、打开FrontPage，插入→符号。&lt;br /&gt;4、Dreamweaver。插入\HTML\特殊字符\版权©&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-2414280220510447144?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/2414280220510447144/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=2414280220510447144' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2414280220510447144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2414280220510447144'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/tmr.html' title='什么是TM，它与圆圈R的区别'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-2014262690474124189</id><published>2009-05-07T10:30:00.001+08:00</published><updated>2009-05-07T10:42:50.105+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='搜狗、自定义、短语、配置文件'/><title type='text'>搜狗拼音自定义短语设置不能直接编辑配置文件</title><content type='html'>问题:搜狗拼音自定义短语设置不能直接编辑配置文件&lt;br /&gt;发现原因：.ini文件没有关联默认编辑程序（例如Notepad）&lt;br /&gt;方案1：右击.ini文件－&gt;打开方式-&gt;选择程序-&gt;点选记事本程序-&gt;勾选始终使用选择的程序打开这种文件&lt;br /&gt;方案2：直接用记事本打开搜狗自定义短语配置文件,自定义短语文件名为phrases.ini，存放在用户文件夹的根目录下,如是Administrator用户则如下所示：&lt;br /&gt;C:\Documents and Settings\Administrator\Application Data\SogouPY.users\00000001\phrases.ini&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-2014262690474124189?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/2014262690474124189/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=2014262690474124189' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2014262690474124189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2014262690474124189'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_07.html' title='搜狗拼音自定义短语设置不能直接编辑配置文件'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-7269235078351580965</id><published>2009-05-05T13:00:00.000+08:00</published><updated>2009-05-05T13:01:35.443+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='搞笑'/><category scheme='http://www.blogger.com/atom/ns#' term='语文'/><title type='text'>80后</title><content type='html'>夫80后者，初从文，未及义务教育之免费，不逮高等学校之分配，适值扩招，过五关，斩六将，硕博相继，数年乃成，负债十万。觅生计，十年无休，披星戴月，秉烛达旦，蓄十万。楼市暴涨，不足购房，遂投股市，翌年缩至万余，抑郁成疾。医保曰，不符大病之条例，拒赔。乃倾其所有，入院一周病无果，因欠费被逐院门。友怜之，赊三鹿一包，冲而饮，卒。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-7269235078351580965?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/7269235078351580965/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=7269235078351580965' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7269235078351580965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7269235078351580965'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/80.html' title='80后'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-9000973694946970836</id><published>2009-05-04T22:38:00.001+08:00</published><updated>2009-05-04T23:53:36.451+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ad Block Plus'/><title type='text'>Ad Block Plus过滤器维护者“rick752”去世，享年56岁</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Tahoma; color: rgb(51, 51, 51); font-size: 12px; "&gt;&lt;span class="bold" style="font-weight: bold; "&gt;Ad Block Plus过滤器维护者“rick752”去世，享年56岁&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="message284188" class="t_msgfont" style="font-size: 12px; "&gt;Richard“rick752”Petnel（1952年7月3日－2009年4月3日），Firefox屏蔽广告插件&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/1865" target="_blank" style="text-decoration: none; color: rgb(21, 75, 160); "&gt;Ad Block Plus&lt;/a&gt;过滤器EasyList的维护者，&lt;a href="http://adblockplus.org/blog/sad-news" target="_blank" style="text-decoration: none; color: rgb(21, 75, 160); "&gt;于4月3日因病去世，享年56岁&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;&lt;img src="http://media3.washingtonpost.com/wp-dyn/content/photo/2008/06/24/PH2008062401493.jpg" border="0" onload="" /&gt;&lt;br /&gt;Petnel是一位机械师，大部分业余时间都用于维护Ad Block Plus。2008年《&lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2008/06/24/AR2008062401287.html" target="_blank" style="text-decoration: none; color: rgb(21, 75, 160); "&gt;华盛顿邮报&lt;/a&gt;》曾报道过他：屏蔽数百万互联网广告的努力得到了用户的褒扬，帮助用户改进了浏览体验，但同时也让依赖广告收入的人感到愤怒和担忧。Richard称他并没有从这项工作中获利，他这么做完全是因为实在厌烦了电脑上无处不在广告恶意程序和间谍软件，他承认他的做法有点极端，但其成就确实显著——插件总下载量高达4500万次。adblockplus博客称，已经有几位候选人，Rick的继任者将择日宣布。&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-9000973694946970836?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/9000973694946970836/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=9000973694946970836' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/9000973694946970836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/9000973694946970836'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/ad-block-plusrick75256.html' title='Ad Block Plus过滤器维护者“rick752”去世，享年56岁'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-3958187079360261430</id><published>2009-05-04T22:13:00.006+08:00</published><updated>2009-05-04T23:52:49.954+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='简拼'/><category scheme='http://www.blogger.com/atom/ns#' term='双拼'/><title type='text'>拼音加加双拼下简拼</title><content type='html'>&lt;div&gt;搜狗目前还不支持双拼下的简拼，需要每打一个字母就按一下‘就可以了&lt;/div&gt;&lt;span class="Apple-style-span"   style=" border-collapse: collapse; color: rgb(68, 68, 68);  line-height: 22px; font-family:Verdana;font-size:14px;"&gt;&lt;p style="word-wrap: break-word; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: normal; "&gt;如：w'h'b'm=五花八门&lt;/p&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_phpN_dG8S_I/Sf755urtgsI/AAAAAAAAAL8/bNh2DgTVep4/s1600-h/%E6%90%9C%E7%8B%971.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 253px; height: 117px;" src="http://4.bp.blogspot.com/_phpN_dG8S_I/Sf755urtgsI/AAAAAAAAAL8/bNh2DgTVep4/s400/%E6%90%9C%E7%8B%971.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331973779032474306" /&gt;&lt;/a&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="color:#0000EE;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;拼音加加提供直接的简拼支持（3字以上词），两字词要用声韵声来输入。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_phpN_dG8S_I/Sf755t1y4RI/AAAAAAAAAL0/J0wPPD0McBc/s1600-h/%E5%8A%A0%E5%8A%A06.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 392px; height: 59px;" src="http://1.bp.blogspot.com/_phpN_dG8S_I/Sf755t1y4RI/AAAAAAAAAL0/J0wPPD0McBc/s400/%E5%8A%A0%E5%8A%A06.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331973778806333714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf75xwf236I/AAAAAAAAALs/DlHPD3CD1ro/s1600-h/%E5%8A%A0%E5%8A%A05.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 340px; height: 59px;" src="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf75xwf236I/AAAAAAAAALs/DlHPD3CD1ro/s400/%E5%8A%A0%E5%8A%A05.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331973642080673698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf75x-N-bYI/AAAAAAAAALk/ME06KYk7LgA/s1600-h/%E5%8A%A0%E5%8A%A04.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 311px; height: 57px;" src="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf75x-N-bYI/AAAAAAAAALk/ME06KYk7LgA/s400/%E5%8A%A0%E5%8A%A04.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331973645763767682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf75xpqvKnI/AAAAAAAAALc/epS08M6wAHs/s1600-h/%E5%8A%A0%E5%8A%A03.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 57px;" src="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf75xpqvKnI/AAAAAAAAALc/epS08M6wAHs/s400/%E5%8A%A0%E5%8A%A03.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331973640247257714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_phpN_dG8S_I/Sf75xsvIgdI/AAAAAAAAALU/Ty-aewfYjd0/s1600-h/%E5%8A%A0%E5%8A%A02.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 216px; height: 57px;" src="http://3.bp.blogspot.com/_phpN_dG8S_I/Sf75xsvIgdI/AAAAAAAAALU/Ty-aewfYjd0/s400/%E5%8A%A0%E5%8A%A02.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331973641071002066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_phpN_dG8S_I/Sf75xbwmw-I/AAAAAAAAALM/z3Pq5dWbYEw/s1600-h/%E5%8A%A0%E5%8A%A01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 372px; height: 57px;" src="http://4.bp.blogspot.com/_phpN_dG8S_I/Sf75xbwmw-I/AAAAAAAAALM/z3Pq5dWbYEw/s400/%E5%8A%A0%E5%8A%A01.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331973636513776610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf74yhonSAI/AAAAAAAAALE/-9X0jw1hso8/s1600-h/%E5%8A%A0%E5%8A%A0.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 381px; height: 56px;" src="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf74yhonSAI/AAAAAAAAALE/-9X0jw1hso8/s400/%E5%8A%A0%E5%8A%A0.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331972555759110146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_phpN_dG8S_I/Sf74ya3SEfI/AAAAAAAAAK8/Zailu0Hq9CU/s1600-h/12345.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 33px;" src="http://4.bp.blogspot.com/_phpN_dG8S_I/Sf74ya3SEfI/AAAAAAAAAK8/Zailu0Hq9CU/s400/12345.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331972553941586418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf74ycDM08I/AAAAAAAAAK0/Te7yJV5bWF8/s1600-h/1234.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 360px; height: 60px;" src="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf74ycDM08I/AAAAAAAAAK0/Te7yJV5bWF8/s400/1234.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331972554260009922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf74x2TaURI/AAAAAAAAAKs/smM-FyVtPN4/s1600-h/123.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 36px;" src="http://2.bp.blogspot.com/_phpN_dG8S_I/Sf74x2TaURI/AAAAAAAAAKs/smM-FyVtPN4/s400/123.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331972544127455506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_phpN_dG8S_I/Sf74xzwpMlI/AAAAAAAAAKk/CZVhFmAo1PQ/s1600-h/12.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 35px;" src="http://1.bp.blogspot.com/_phpN_dG8S_I/Sf74xzwpMlI/AAAAAAAAAKk/CZVhFmAo1PQ/s400/12.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5331972543444759122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-3958187079360261430?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/3958187079360261430/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=3958187079360261430' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3958187079360261430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/3958187079360261430'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/blog-post_04.html' title='拼音加加双拼下简拼'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_phpN_dG8S_I/Sf755urtgsI/AAAAAAAAAL8/bNh2DgTVep4/s72-c/%E6%90%9C%E7%8B%971.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-8083320914784270106</id><published>2009-05-04T11:23:00.000+08:00</published><updated>2009-05-04T11:24:50.277+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='excel 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='启用'/><category scheme='http://www.blogger.com/atom/ns#' term='宏'/><title type='text'>哪位大虾知道我的office excel 2007 怎么加载不了宏阿???</title><content type='html'>在excel选项--常用--选择在功能区显示开发工具选项卡 复选框 另外在信任中心--信任中心设置--宏设置--启用所以宏 选项&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-8083320914784270106?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/8083320914784270106/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=8083320914784270106' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/8083320914784270106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/8083320914784270106'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/office-excel-2007.html' title='哪位大虾知道我的office excel 2007 怎么加载不了宏阿???'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-438052161580831817</id><published>2009-05-04T10:33:00.001+08:00</published><updated>2009-05-04T10:35:51.237+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excel，合并，多个'/><title type='text'>用宏快速合并200个Excel工作簿</title><content type='html'>&lt;div id="context_title"&gt; &lt;div id="context_title_detail"&gt;&lt;hr style="margin: 16px 0px;"&gt; &lt;span style="padding: 0px 18px; display: block; width: 540px; color: rgb(0, 33, 102); line-height: 25px; text-align: left;"&gt;你会不会有大量Excel工作簿需要合并到一起呢？你可以手动完成这一工作，但这个工作可能会花费你一整天的时间。要完成合并工作，最好使用宏，这样只需花几分钟便可搞定。本文所介绍的技巧将向你说明如何创建这样一个&lt;/span&gt;&lt;span style="padding: 0px 18px; display: block; width: 540px; color: rgb(0, 33, 102); line-height: 25px; text-align: left;"&gt;宏，来节省你的宝贵时间。(本技巧可应用于Microsoft  Excel 97、Excel 2000、Excel 2002、和Excel 2003。)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;script language="JavaScript" src="http://news.newhua.com/FS_Inc/Prototype.js"&gt;&lt;/script&gt;  &lt;center&gt;&lt;a href="http://nj.onlinedown.net/fetion2008.exe" target="_blank"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/center&gt; &lt;div id="context_main"&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;　　Joydip  Das在合并数个工作簿时遇到了问题。这些工作簿总数约有200，保存在同一文件夹中，其中大多数工作簿中只包含一个单独的工作表，但有些工作簿包含多个工作表。这些工作簿中的工作表需要被添加到一个新的工作簿中。&lt;/div&gt; &lt;div&gt;　　&lt;/div&gt; &lt;div&gt;　　合并数量如此巨大的工作簿的最简单方法——如果经常要这样做的话——是使用宏。下面的宏会显示一个对话框，提示你选择要合并的文件。(你可以通过按下Ctrl键单击的方法选择多个工作簿。)它会使用代码在你所选的工作簿列表中循环，打开每个工作簿并将其中的工作表移动到工作簿的末尾。&lt;/div&gt; &lt;p align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_phpN_dG8S_I/Sf5UTWZDmdI/AAAAAAAAAKc/f9lzkEuAaOQ/s1600-h/tu16jt94f72h.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 379px; height: 400px;" src="http://1.bp.blogspot.com/_phpN_dG8S_I/Sf5UTWZDmdI/AAAAAAAAAKc/f9lzkEuAaOQ/s400/tu16jt94f72h.jpg" alt="" id="BLOGGER_PHOTO_ID_5331791700258167250" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;　　在将工作表添加到工作簿末尾的过程中，Excel会复制工作表的名称并自动根据检测结果附加(2)、(3)等数字编号。工作簿中与其他工作表相关的任何公式也会自动更新的新的名称。&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-438052161580831817?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/438052161580831817/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=438052161580831817' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/438052161580831817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/438052161580831817'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/200excel.html' title='用宏快速合并200个Excel工作簿'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_phpN_dG8S_I/Sf5UTWZDmdI/AAAAAAAAAKc/f9lzkEuAaOQ/s72-c/tu16jt94f72h.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-2353675309282264530</id><published>2009-05-04T10:04:00.005+08:00</published><updated>2009-05-04T11:27:48.187+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sheet'/><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='保存'/><title type='text'>将一个Excel文件的多个工作表(sheet)分别存成单个独立文件</title><content type='html'>问题描述：使用过程中，为了方便，一个文件下使用多个工作表方便计算，而每次给不同客户寄我的结算结果，都需要复制当前单一的工作表，然后粘贴到一个新的Excel文件下，长此以往工作量加大 请问，怎样把一个Excel文档下多个工作表，直接转换成单个文件。也就是说，怎样把一个excel文件下sheet1 sheet2.....sheet N每一个工作表转换成一个个单独的excel文档。&lt;br /&gt;&lt;br /&gt;方案一：&lt;br /&gt;右击要转移的工作表名称栏，点编辑-移动或复制工作表， 在工作薄中选择新工作薄，然后把建立副本选中就行了。 （这个方案还是没能解决大量工作表转存的工作量问题）&lt;br /&gt;&lt;br /&gt;方案二：&lt;br /&gt;'--------------------------------------------&lt;br /&gt;Sub sheets2excels()&lt;br /&gt;'MsgBox ThisWorkbook.Path&lt;br /&gt;Application.ScreenUpdating = False&lt;br /&gt;Application.DisplayAlerts = False&lt;br /&gt;Dim XSheet As Worksheet&lt;br /&gt;For Each XSheet In ActiveWorkbook.Sheets&lt;br /&gt;XSheet.Copy&lt;br /&gt;ActiveWorkbook.SaveAs Filename:=&lt;strong&gt;ThisWorkbook.Path&lt;/strong&gt; &amp;amp; "\" &amp;amp; &lt;strong&gt;XSheet&lt;/strong&gt;.Name &amp;amp; ".xls"&lt;br /&gt;ActiveWindow.Close&lt;br /&gt;Next&lt;br /&gt;Application.ScreenUpdating = True&lt;br /&gt;End Sub&lt;br /&gt;'--------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;span id="reply_content_201364897"&gt;将以上代码复制，打开你的Excel,同时按下Alt+F11,在工程窗口（左上）中双击ThisWorkbook,在右边空白处粘贴刚才复制的代码，单击代码中的某一行，再单击工具栏（上面）上的向右三角形，OK.&lt;/span&gt;&lt;br /&gt;&lt;span id="reply_content_201178616"&gt;需要说明的是&lt;br /&gt;1、如果是OFFICE2007的话不要忘了把后缀改成XLSX&lt;/span&gt;&lt;br /&gt;2、必须先保存要分割的文档后，再运行此宏（否则无法获得当前路径的）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-2353675309282264530?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/2353675309282264530/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=2353675309282264530' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2353675309282264530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/2353675309282264530'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/05/excelsheet.html' title='将一个Excel文件的多个工作表(sheet)分别存成单个独立文件'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-7237936984467312310</id><published>2009-04-28T11:03:00.001+08:00</published><updated>2009-04-28T11:03:41.945+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='乱码 消除'/><title type='text'>乱码形成原因及消除方法大全</title><content type='html'>&lt;div id="BlogArticleDetail" style="font-size: 14px;"&gt;&lt;p&gt;当我们浏览网页、打开文档或邮件，运行软件时，经常会看到乱码，通常是由于源文件编码，Windows不&lt;br /&gt;能正确识别造成的的，也可能是其他原因。乱码给我们带来了太多的烦恼，为了帮助大家彻底摆脱乱码&lt;br /&gt;，下面我们就来探讨一下乱码的形成原因及其消除方法。 &lt;br /&gt;　　一、乱码有五种类型 &lt;br /&gt;　　常见的乱码，一般可以分成五种类型：第一类是文本/文档文件乱码，这一般是由于源文件编码，与&lt;br /&gt;Windows使用的编码不通用造成的；第二类是网页乱码，形成原因与第一类乱码类似；第三类是Windows&lt;br /&gt;系统界面乱码，即中文Windows的菜单、桌面、提示框等显示乱码，主要是Windows注册表中有关字体的&lt;br /&gt;部分设置不当引起的；第四类是应用程序的界面乱码，即各种应用程序（包括游戏）本来显示中文的地&lt;br /&gt;方出现乱码，形成原因比较复杂，有第二类的乱码原因，也可能是软件用到的中文链接库，被英文链接&lt;br /&gt;库覆盖造成的；第五类是邮件乱码，形成原因也极其复杂。 &lt;br /&gt;　　二、如何消除应用程序的界面乱码？ &lt;br /&gt;　　目前有些软件发行了Unicode版本，这是一种通用的字符编码标准，涵盖了全球多种语言及古文和专&lt;br /&gt;业符号，这种版本的软件运行在任何系统和语言上都不会乱码，如果是非Unicode编码的程序，就会有乱&lt;br /&gt;码现象。 &lt;br /&gt;　　【形成原因】：原因有三种。如果是由于Windows注册表中关于字体设置的信息不正确造成的，你可&lt;br /&gt;以用下面“如何消除Windows系统界面乱码”介绍的办法去解决；如果用上法解决不了，那就可能是由于&lt;br /&gt;软件的中文链接库，被英文链接库覆盖而引起的。这种现象经常发生在用微软开发工具例如VB、VC开发&lt;br /&gt;的中文软件上，这类软件中，菜单等显示界面上的汉字都是受一个动态链接库（DLL文件）控制，而软件&lt;br /&gt;的这个动态链接库一般安装在WindowsSystem目录下，如果以后安装了某个英文软件也使用同名的动态链&lt;br /&gt;接库，则英文软件的动态链接库就会覆盖中文链接库，这样，运行中文软件时就会调用英文的动态链接&lt;br /&gt;库，因此出现乱码。解决办法：重新安装中文软件，恢复中文动态链接库即可。 &lt;br /&gt;　　如果以上方法也无济于事，对于Win9X／ME系统，你可以安装使用MagicWin98（下载地址&lt;br /&gt;http://www.skycn.com/soft/3047.html）、南极星等内码转换软件，转换内码后即可消除乱码；对于&lt;br /&gt;WinXP系统，建议使用微软多语言支持工具MicrosoftAppLocale（下载地址&lt;br /&gt;http://www.skycn.com/soft/12582.html），利用它为指定程序设置相应的语言区域，这样也可消除乱&lt;br /&gt;码。 &lt;br /&gt;　　三、如何消除文本/文档文件乱码? &lt;br /&gt;　　【形成原因】：一般是由于文档采用的字符集，系统不支持造成的。例如繁体中文的文档显示在简&lt;br /&gt;体中文系统下，或者相反的情况，就会造成文档显示时乱码。只要你内码转换正确，例如把原本是繁体&lt;br /&gt;的内码，转换为简体内码（或者相反），即可消除乱码。 &lt;br /&gt;　　【解决办法】：有以下四种解决办法：&lt;br /&gt;　　1、使用Word2003/XP转换内码 &lt;br /&gt;　　Word2003/XP支持众多的语言，可以正确显示非Unicode类型的文本文件，单击“工具”菜单下的“&lt;br /&gt;语言”/设置语言，你可以把默认语言设置成非中文，例如日语，这样Word就可以正确显示日文了。 &lt;br /&gt;　　当然你也可以用它进行简体中文与繁体中文之间的转换工作，如果文件有乱码，你转换一下即可消&lt;br /&gt;除。例如要把繁体中文转换为简体中文，方法是：选择要转换内码的文件，在弹出的对话框中（如下图&lt;br /&gt;），选择“其他编码”中的“繁体中文（BIG5）”一项，打开此文件时就不会出现乱码。  &lt;/p&gt; &lt;p&gt;    2、使用Word2003/XP无乱码保存 &lt;br /&gt;　　在Word2003/XP中，当保存时选择“文件”中的“另存为”，先存为“WORD”文档，存盘后打开再存&lt;br /&gt;为纯文本等其他格式；或者在菜单栏中选择“工具/语言/中文简繁转换”，内码转换以后再保存。 &lt;br /&gt;　　3、使用内码转换工具 &lt;br /&gt;　　除此之外，使用内码转换工具也可以消除此类乱码，你只要对BIG5（繁体中文）和GB2312（国标码&lt;br /&gt;、简体中文）进行相互转换即可实现。常用的内码转换工具有： &lt;br /&gt;4、使用WPS2000转换内码 &lt;/p&gt; &lt;p&gt;WPS2000也能转换内码，支持GB2312、BIG5、GBK等三种主要的汉字编码，并可在输出RTF、TXT、HTM格式&lt;br /&gt;文件时对内码进行转换。 &lt;br /&gt;四、如何消除网页乱码？ &lt;br /&gt;　　【形成原因】：网页乱码是浏览器（IE等）对HTML网页解释时形成的，如果网页制作时编码为A，浏&lt;br /&gt;览器却以编码B显示该网页，就会出现乱码，因此只要你在浏览器中也以编码A显示该网页，就会消除乱&lt;br /&gt;码。 &lt;br /&gt;　　例如网页的代码中有形如：〈HTML〉〈HEAD〉〈META  CONTENT=“text/html；charset=ISO-8859-1&lt;br /&gt;”〉〈/HEAD〉的语句，浏览器在显示此页时，就会出现乱码，因为浏览器会将此页语种辨认为“欧洲语&lt;br /&gt;系”。 &lt;br /&gt;　　【解决办法】：有以下四种解决办法：&lt;br /&gt;　　1、在浏览器中选择“编码”菜单 &lt;br /&gt;　　事先为浏览器安装多语言支持包（例如在安装IE币?安装多语言支持包），这样当浏览网页出现乱码&lt;br /&gt;时，即可手工更改此类网页的编码方式，在浏览器中选择菜单栏下的“查看??“编码”/“自动选择”/&lt;br /&gt;简体中文（GB2312），如为繁体中文则选择“查看”/“编码”/“自动选择”/繁体中文（BIG5），其他&lt;br /&gt;语言依此类推，选择相应的语系，这样便可消除网页乱码现象。 &lt;br /&gt;　　2、修改网页代码&lt;br /&gt;　　用FrontPage等软件打开出现乱码的网页，修改该网页代码，在以下句子中&lt;br /&gt;　　〈META  CONTENT=“text/html；charset=ISO-8859-1”〉，将语种“ISO-8859-1”改为GB2312，如&lt;br /&gt;果是繁体网页则改为BIG5。 &lt;br /&gt;　　3、无乱码保存网页 &lt;br /&gt;　　用浏览器打开该网页，在“查看”/“编码”中选择“自动选择”，存盘时保存类型选“WEB页”，&lt;br /&gt;编码选择“UNICODE”，这样保存过的网页再次打开时，在浏览器菜单“查看”/“编码”中不管选择简&lt;br /&gt;体中文（GB2312）、简体中文（HZ）还是UNICODE（UTF-8）或繁体中文（BIG5），最终显示都不会出现&lt;br /&gt;乱码。 &lt;br /&gt;　　4、使用多内码显示软件&lt;br /&gt;　　使用多内码显示软件来转换内码，也可以消除乱码。常用多内码显示软件有： &lt;/p&gt; &lt;p&gt;五、如何消除Windows系统界面乱码？ &lt;br /&gt;　　【形成原因】：这类乱码是由于Windows注册表中关于字体部分配置不正常造成的，即使您用内码翻&lt;br /&gt;译软件（如南极星、MagicWin98等）处理也不会消除。 &lt;br /&gt;　　【解决办法】：在Windows注册表中，恢复关于字体部分的正确设置。&lt;br /&gt;    1、利用显示正常的电脑 &lt;br /&gt;　　假如有一台Windows版本相同、显示正常的电脑可以利用，你可以如下步骤进行恢复：在正常机器上&lt;br /&gt;选择“开始”/“运行”，在对话框中键入“REGEDIT”，打开注册表编辑器；光标定位到&lt;br /&gt;“HKEY_LOCAL_MACHINESYSTEMCURRENT  CONTROL  SETCONTROLFONTASSOC”，选择“注册表/导出注册表文&lt;br /&gt;件”，选择“分支”，导出该分支注册表信息到文件（如LI.REG）中（如下图）；把LI.REG文件COPY到&lt;br /&gt;显示乱码的机器上，在显示乱码机器上运行REGEDIT，选择“注册注册表”/“导入注册注册表”，把&lt;br /&gt;LI.REG文件导入注册表中。  &lt;/p&gt; &lt;p&gt;    2、在显示乱码的电脑上操作&lt;br /&gt;　　如果没有显示正常的电脑可以利用，就需要您手工恢复字体部分注册表项，方法有以下两种： &lt;br /&gt;　　第一种方法：用记事本编辑一个文件，然后保存为扩展名“REG”(文件名随意)，再用鼠标右键单击&lt;br /&gt;这个文件，在右键菜单中选择合并，即可完成对注册表的改动。该文本文件的内容如下： &lt;br /&gt;　　 REGEDIT4&lt;br /&gt;　　  [HKEY_LOCAL_MACHINESystemCurtentControlsetcontrolfontassoc]??&lt;br /&gt;　　  [HKEY_LOCAL_MACHINESystemCurtentControlsetcontrolfontassocAssociated &lt;br /&gt;DefaultFonts]??&lt;br /&gt;　　 "assocSystemFont"="simsun.ttf"&lt;br /&gt;　　  "FontPackageDontCare"="宋体"&lt;br /&gt;　　 "FontPackageRoman"="宋体"&lt;br /&gt;　　  "FontPackageSwiss"="宋体"&lt;br /&gt;　　 "FontPackageModem"="宋体"&lt;br /&gt;　　  "FontPackageScript"="宋体"&lt;br /&gt;　　 "FontPackageDecorative"="宋体"&lt;br /&gt;　　  [HKEY_LOCAL_MACHINESystemCurtentControlsetcontrolfontassocAssociated &lt;br /&gt;CharSet]??&lt;br /&gt;　　 "ANSI(00)"="yes"&lt;br /&gt;　　 "SYMBOL(02)"="no"&lt;br /&gt;　　  "OEM(FF)"="yes"&lt;br /&gt;　　 "GB2312(86)"="yes"　　 &lt;br /&gt;　第二种方法：在出现乱码的电脑上，单击菜单“开始”/运行，键入REGEDIT打开注册表；找到&lt;br /&gt;“HKEY_LOCAL_MACHINESYSTEMCURRENT  CONTROL SETCONTROLFONTASSOC”，正常情况下会有ASSOCIATED&lt;br /&gt;DEFAULTFONTS、ASSOCIATED  CHARSET两个文件夹，这些文件夹中正确的参数如下表所示： &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;当出现汉字乱码时，上述两个文件夹中内容就会不完整，有的没有ASSOCIATED  CHARSET文件夹、或其中&lt;br /&gt;内容残缺不全；有的ASSOCIATED  DEFAULTFONTS下内容残缺。只要你打开注册表，在&lt;br /&gt;“HKEY_LOCAL_MACHINESYSTEMCURRENTCONTROLSETCONTROLFONTASSOC”下，根据以上正确内容恢复即可。 &lt;br /&gt;　　六、如何消除邮件乱码？&lt;br /&gt;　　邮件乱码的形成原因很多，主要有以下几个方面，针对以下几种形成原因，应该采取不同的乱码消&lt;br /&gt;除方法： &lt;br /&gt;　　1、收发信双方的语种不同导致的 &lt;br /&gt;　　收发双方使用的操作系统的不同，可以造成乱码。比如发件人使用的是日文的Windows，而收件人使&lt;br /&gt;用的是简体中文的Windows，这样的邮件当然会造成乱码。对于中文电子邮件，如果收信方所用的操作系&lt;br /&gt;统是英文环境、而且没有外挂中文系统或未切换为中文（如南极星等）编码方式，也会无法看到中文、&lt;br /&gt;只可见乱码。所有的双字节字符（如中文简/繁体的GB和BIG5码及日文的JIS、EUC和朝鲜文的  KSC码等）&lt;br /&gt;在非本语种操作系统下都会出现乱码；同样在中文简体的GB码环境下，看其他双字节字符时也只能看到&lt;br /&gt;乱码。 &lt;br /&gt;　　【解决办法】：安装多语言支持包或使用多内码显示平台（如南极星等），对收到的邮件，根据其&lt;br /&gt;使用的语种切换到相应的编码方式即可消除乱码。 &lt;br /&gt;　　2、发信服务器不支持8位（非ASCII码格式）传输 &lt;br /&gt;　　邮件传输机制或邮件编码的不同，可能造成邮件服务器不支持8位（非ASCII码格式）传输而形成邮&lt;br /&gt;件乱码。例如直接发送中文或二进制等非ASCII码格式的邮件（如中文双字节文件、图片文件.jpg、可执&lt;br /&gt;行文件.exe或压缩文件.zip等二进制文件）时，邮件服务器有可能无法处理，便把信件中每个字符的第&lt;br /&gt;八位都过滤掉，从而造成邮件信息的失真或损坏，在收到邮件时就是一堆乱码。 &lt;br /&gt;　　【解决办法】：只能由发件人解决。当发送8位格式的文本文件时，必须事先进行编码，将文件转换&lt;br /&gt;为7位ASCII码或更少位数的格式，然后才能保证文件的正确传送。收件人收到7位或更少位格式的邮件后&lt;br /&gt;，可以再转换为8位的格式，这样就可避免乱码。 &lt;br /&gt;　　3、收发端用的EMAIL软件和设置不同 &lt;br /&gt;　　一般EMAIL软件的"附件"功能都可以自动对信件先进行编码，然后送出。这样只要收信人使用的&lt;br /&gt;EMAIL软件（如Outlook  XP等）能区别信件的编码方式，即可自动将信件解码。如果收发件人所用的&lt;br /&gt;EMAIL软件默认配置不同、收发件人自己定制的一些选项不同，在收到编码的信件后，系统就未必能识别&lt;br /&gt;出信件所用的编码方法，自然也无法自动解码，这样就会出现乱码。 &lt;br /&gt;　　【解决办法】：如果你用OE收中文邮件，看到的是一篇乱码，可以查一下“查看”－“编码”下，&lt;br /&gt;是否选了“简体中文（GB2312）”，选对了就不会有问题。 &lt;br /&gt;　　此外，你也可以用Winzip  IE来解码，方法是：把乱码邮件的内容，拷贝到剪贴板中，然后将其粘贴&lt;br /&gt;到记事本中，存为文本文件（例如LI.txt），再将其后缀改为.uue（改为LI.uue），点击此文件，会启&lt;br /&gt;动Winzip，然后启动IE，把Winzip中的001.txt文件拖到IE窗口中，就会显示邮件原来的内容，而不会看&lt;br /&gt;到乱码。 &lt;br /&gt;4、Email软件不能识别邮件的编码方法&lt;br /&gt;　　邮件的编码方式主要有：Uuencode、Base64  encode、QP－encode、BINHEX等。如果Email软件不能&lt;br /&gt;识别邮件的编码方法，就会显示邮件时出现乱码。因此，你可以根据邮件中的关键字符判断编码方法，&lt;br /&gt;选取合适的解码软件进行解码。 &lt;br /&gt;　　（1）、QpencodeQP编码&lt;br /&gt;　　该编码全称“Quoted－Printable  Content－Transfer－Encoding”，因为这种格式邮件的内容都是&lt;br /&gt;ASCII字符集中可以打印的字符，所以名称中含有printable。大体格式为：　　&lt;br /&gt;=A1A=B1z=A6n=A1I=A7=DA=A6b=BA=F4=B8=F4=A4W=B1o......=E5==ABH=A5=F3=B0=DD=C3D=B1M=Aea=A1A...&lt;br /&gt;... &lt;br /&gt;　　特征：内容通常有很多等号"="，因此不需要看"信头"也可以判断是否为QP编码。 &lt;br /&gt;　　解码办法：把邮件中类似A1A=B1z=A6n…的部分编码全部复制下来，贴到一个新的纯文本文件中，然&lt;br /&gt;后在文件头部加入Quoted-pintable格式的文件头： &lt;br /&gt;　　Contenet-Type:text/plain;Charset=”GB2312” &lt;br /&gt;　　Content-Transfer-Encoding;Quoted-pintable &lt;br /&gt;　　然后以“EML”为后缀保存文件，用资源管理器双击打开文件即可显示正确的内容。如果还有部分汉&lt;br /&gt;字乱码，可以用WINZIP对存盘后的EML文件进行解压，即可看到正确的内容。 &lt;br /&gt;　　（2）MIME/BASE64 encode编码 &lt;br /&gt;　　该编码方式将3个字节（8位）用4个字节（6位）表示，由于编码后的内容是6位的，因此可避免第8&lt;br /&gt;位被截掉，大体格式为： &lt;br /&gt;　　　　MIME－Version：1.0&lt;br /&gt;　　　　Content－Type：text/plain; charset="us－ascii" &lt;br /&gt;　　　　Content－Transfer－Encoding:base64&lt;br /&gt;　　Status：R  SGmhQbF6pm6hSafapmK69Lj0pFexb6q＋sXqsT6Skp OWrSKXzs &lt;br /&gt;　　N3DRLFNrmGhQQ0Kq1＋sTqq6vdCx&lt;br /&gt;0LF6tFit07Ddw0ShRw0KDQqtuqX9p2m2RL &lt;br /&gt;　　F6p9qoz6XOIE1Py3Jvc29mdCuiBJbnRlcm5ldCBN......。 &lt;br /&gt;　　特征：乱码前一般有如下几部分"信头"：Content－Type(内容类型)、charset(字符集)及Content－&lt;br /&gt;Transfer－Encoding(内容传输乱码方式)。 &lt;br /&gt;　　解码办法：用EMAIL软件，选择编码中BASE64 选项就可解码，解码后会消除乱码。&lt;br /&gt;　　（3）、BINHEX编码 &lt;br /&gt;　　这种编码方式大体格式为：&lt;br /&gt;　　(This file must be converted with  Binhex4.0)SGmhQbF6pm6hSafapmK69Lj0pFexb6qss&lt;br /&gt;　　Tqq6vdCx &lt;br /&gt;0LF6tFit07Ddw0ShRw0KDQqtuqX9p2m2RLF6p9qoz6XOIE……. &lt;br /&gt;　　解码办法：用EMAIL软件对它解码；也可在EMAIL软件中保存乱码邮件，存为后缀为“.HQX”格式的&lt;br /&gt;文件，然后用WINZIP解码展开。解码后会消除乱码。 &lt;br /&gt;　　（4）、UTIF-7/UTIF-8编码&lt;br /&gt;　　它们是UNICODE的两种转换码。 &lt;/p&gt; &lt;p&gt;   （5）、Uuencode编码&lt;br /&gt;　　这是UNIX环境下使用的编码方式，目前已经很少用，大体格式为：&lt;br /&gt;　　　 begin 644  kk.zip  M1G)O;2!I;&amp;amp;EN＋F)B3T!C(VEE＋FYC=‘4N961U＋G1W(%=E9"!.;W8@(#8@,3&lt;br /&gt;(ZM,SDZ,C4@,3DY－@I296－E:79E9#H@9G)O;2!F;&amp;amp;%B;6%I;"YF;&amp;amp;%B＋F9U:FET.................。  &lt;/p&gt; &lt;p&gt;　　　　 end&lt;br /&gt;　　特征：乱码前面含有"begin  xxx"，后面是编码前的原始文件名（如kk.zip）；接着是已经过编码的&lt;br /&gt;信件内容（如上述的乱码部分）；最后一行为"end" &lt;br /&gt;　　解码办法：可用BECKY！EUDORA等EMAIL软件，选择编码中相应的选项就可解码；也可以在EMAIL软件&lt;br /&gt;中保存乱码邮件，存为后缀为“.UUE”格式的文件，然后用WINZIP解码展开，解码后就会消除乱码。 &lt;br /&gt;七、发信方如何避免产生乱码邮件？&lt;br /&gt;　　为了避免别人收到乱码，发信方应该采取以下的措施：&lt;br /&gt;　　1、设定默认自动为7位编码 &lt;br /&gt;　　在邮件客户端软件中的书写（撰写）选项中，设定默认自动为7位编码。因为当你发送  8位格式的文&lt;br /&gt;本文件时，必须事先进行编码，将文件转换为7位ASCII码或更少位数的格式，然后才能保证文件的正确&lt;br /&gt;传送。收件人收到7位或更少位格式的邮件之后，可以再转换为8位的格式，这样就可以阅读了。 &lt;br /&gt;　　2、发送前在签字栏中注明使用的汉字编码 &lt;br /&gt;　　发送中文邮件前，最好在固定的签字栏中注明自己所使用的汉字码标准(例如GB2312、中文HZ、GBK&lt;br /&gt;等)；港澳台及东南亚地区邮件作者在使用BIG5  码撰写完邮件、向内地发送前，要转换成上述三种简体&lt;br /&gt;国标码中的一种形式、并在签字栏中注明。如不转换则可能无法阅读，因为国内用户使用的邮件系统有&lt;br /&gt;很多不支持BIG5码。 &lt;br /&gt;　　3、正确设置EMAIL软件&lt;br /&gt;　　选择优秀的Email收发软件可以有效地解决邮件乱码。如果使用Outlook  2003/XP，应在软件中把“&lt;br /&gt;简体中文（GB2312）作为默认的邮件使用语言，选择“国际设置”/为接收的所有邮件使用默认的编码。 &lt;br /&gt;　　如果使用英文EMAIL软件，应设置成：文字设定DEFAULT CHARSET：ISO  8859-1（LATIN1）；编码方&lt;br /&gt;式ENCODING：QUOTED-PRINTABLE，不可选择7位（因为7位不支持中文）；字码页CODE  PAGE（可选）：&lt;br /&gt;936或HZ-GB-2312，以支持整字识别；邮件格式：MIME；字体：宋体 &lt;br /&gt;　　如果使用其他中文EMAIL软件，应设置成：文字设定DEFAULT  CHARSET：简体中文GB2312；编码方式&lt;br /&gt;ENCODING：QUOTED-PRINTABLE；邮件格式：MIME；字体：宋体 &lt;br /&gt;　　4、发送重要信息时先发测试信 &lt;br /&gt;　　发送重要信息时，为了确认是否无须编码即可发送正文，应该先发送测试信。而且还应确定收件人&lt;br /&gt;能否对附件文件进行解码。如果发送已经编码的邮件，则最好添加足够的“信头”信息，以便收件人知&lt;br /&gt;道所需的解码方法。建议对uuencode/UUDeview编码方式用uuencoding作信头，对mpack编码方式用&lt;br /&gt;base64  encoding作信头。 &lt;br /&gt;　　如果发/收件人之间远隔万里，则传送过程中，第八位将可能被截掉。这时最好先在正文中用中文给&lt;br /&gt;收件人发一封测试信，并了解对方能否正确收到邮件正文。如果第八位被截掉，则收件人将会看到一些&lt;br /&gt;乱码，而不是上述的uu/b64/Qp等格式，而且这种信件几乎不可恢复。 &lt;br /&gt;　　对策：在Netscape、Eudora或Pegasus Mail等你所使用的邮件系统中，选择其首选项或选项配置中&lt;br /&gt;的"Quoted  Printalbe"或"MIME encoding&lt;br /&gt;　　5、尽量利用“附件”功能发送文件&lt;br /&gt;　　几乎所有的邮件软件，如Netscape、The  Bat！、 Becky! 等邮件系统附加这类非标准  ASCII码格式&lt;br /&gt;的文件时，附加文件通常可以自动进行“base64”方式编码（仅对附件部分进行编码）。在用"附件"方&lt;br /&gt;式发送邮件之前，无需进行编码；否则适得其反。因为邮件软件能够自动成功解码这类“附加”文件，&lt;br /&gt;因此在发送中文类邮件时应该首选这种方法。 &lt;br /&gt;　　如果无法以附件方式发送文件，则必须在正文中发送中文或二进制文件&lt;br /&gt;　　八、收信方如何避免邮件显示乱码？ &lt;br /&gt;　　收信方应该首先查找邮件的签字栏或正文中，有无指明对方使用的汉字编码类别；然后在Outlook &lt;br /&gt;XP“视图”菜单下选中“编码”，随后将出现全部的汉字编码，在其中选择邮件所指明的一种。 &lt;br /&gt;　　如果收到的邮件中没有指明所用的汉字编码，则可以顺序单击选择编码，直到邮件正文显示正确为&lt;br /&gt;止。如果你使用的是Netscape，则可在  Option菜单下的Document Encode中选择相应的项目。&lt;br /&gt;　　九、在跨语种操作系统间收发电子邮件，如何保证不会乱码？ &lt;br /&gt;　　如果对方使用非中文系统，你给他发中文邮件时，他打开你发的中文邮件，就会出现乱码。解决办&lt;br /&gt;法有两种：&lt;br /&gt;　　1、用绘图软件书写中文邮件 &lt;br /&gt;　　用画笔等绘图软件书写中文邮件，然后把中文邮件以GIF图形格式保存，最后压缩之、作为邮件附件&lt;br /&gt;发送。 &lt;br /&gt;　　运行绘图软件，在图片中输入文字，用GIF格式保存，将属性置为黑白模式（以减少图片体积），然&lt;br /&gt;后用WINZIP把它压缩成ZIP格式，作为附件在邮件中发送，这样不管对方在何语言平台下，都不会出现乱&lt;br /&gt;码，收信人不必去下载PDF文件阅读器，阅读起来也很方便。 &lt;br /&gt;　　2、使用专门的工具转换和阅读&lt;br /&gt;　　EMAIL AID之类的工具可以把中文邮件转换为AID格式文件，你把该格式文件发给对方，他再用EMAIL &lt;br /&gt;AID打开观看即可。&lt;br /&gt;　　EMAIL AID（UCWIN GOLD  1.0附带的）可以把文本文件转换为AID格式文件，大小只比原TXT文件增加&lt;br /&gt;几K。写好中文邮件后，用文本格式存盘，然后你运行EMAIL  AID，以AID格式保存，最后你把AID文件连&lt;br /&gt;同EMAIL AID软件一起作为附件插在信中。对方收到信后，只需运行EMAIL  AID，打开AID格式文件即可看&lt;br /&gt;到汉字，不管对方在何种语言平台下，都不会出现乱码。&lt;/p&gt; &lt;p&gt;&lt;br /&gt;有以下几种方法：&lt;/p&gt; &lt;p&gt;1．先按CTRL+A键将网页全部选中，“复制”，然后从中选取需要的文字即可。&lt;br /&gt;2．调用源文件查看文字。选择菜单“查看”，点击“源文件”，打开记事本就能看到网页的全部文字，选取你需要的即可。&lt;br /&gt;3．点击IE的“工具/Internet”菜单，进入“安全”标签页，选择“自定义级别”，将所有脚本全部禁用然后按F5键刷新网页，然后你就会发现那些无法选取的文字就可以选取了。&lt;br /&gt;4．利用抓图软件SnagIt实现。SnagIt中有一个“文字捕获”功能，可以抓取屏幕中的文字，也可以用于抓取加密的网页文字。单击窗口中的“文字捕获”按钮，单击“输入”菜单，选择“区域”选项，最后单击“捕获”按钮，这时光标会变成带十字的手形图标，按下鼠标左键在网页中拖动选出你要复制的文本，松开鼠标后会弹出一个文本预览窗口，可以看到网页中的文字已经被复制到窗口中了。剩下的工作就好办了，把预览窗口中的文字复制到其他文本编辑器中即可，当然也可以直接在这个预览窗口中编辑修改后直接保存。&lt;br /&gt;5．使用特殊的浏览器。如TouchNet &lt;br /&gt;Browser浏览器具有编辑网页功能，可以用它来复制所需文字。在“编辑”菜单中选择“编辑模式”，即可对网页文字进行选取。&lt;br /&gt;6、使用文件菜单将其另存为，这一类方法适用于动力文章管理系统Ver3.51等版本。&lt;/p&gt; &lt;p&gt;然后用word或frontpage打开。&lt;/p&gt; &lt;p&gt;&lt;br /&gt;7、直接使用word或frontpage对其编辑。&lt;/p&gt; &lt;p&gt;&lt;br /&gt;以上方法对某些网页并不都适用，你可视情选用&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-7237936984467312310?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/7237936984467312310/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=7237936984467312310' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7237936984467312310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7237936984467312310'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/04/blog-post_1680.html' title='乱码形成原因及消除方法大全'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-104315518444973452</id><published>2009-04-28T11:01:00.001+08:00</published><updated>2009-04-28T11:03:17.974+08:00</updated><title type='text'>告别乱码</title><content type='html'>&lt;h1 id="artibodyTitle"&gt;&lt;br /&gt;&lt;/h1&gt; &lt;div id="conauthor"&gt;&lt;span&gt;2000-03-02  00:00&lt;/span&gt;&lt;span&gt;作者：答俊波&lt;br /&gt;&lt;/span&gt;&lt;span&gt;出处：cpcw&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class="topadbg"&gt;&lt;span id="ad9"&gt;&lt;/span&gt;&lt;/div&gt;&lt;!--正文开始--&gt; &lt;div id="conneirong"&gt;&lt;span id="ad3"&gt;&lt;/span&gt; &lt;div id="artibody"&gt;&lt;!-- Error --&gt;  &lt;div class="guanggao"&gt;&lt;span id="contentAdv"&gt;&lt;/span&gt;&lt;/div&gt;衣攵晕颐抢此凳蔷Ｓ龅降模蜗贰⑼尽⑷砑缑妫馐焙蚓鸵玫侥诼胱还ぞ卟拍芑袢∥颐窍胍男畔ⅰichWin、MagicWin、NJstart（南极星）、LAT（两岸通）等，都是我们经常用到的内码转换工具。但当我们从网上下载了一篇是乱码的文章时，虽然可以用这些工具将其转换成我们所能阅读的形式，但当我们想引用文章中的部分语句从而进行复制粘贴的操作时，我们会发现粘贴后的部分仍是乱码。那么我们如何将这类文章转换成我们所用的GB码(即国标码)，而不需要再次打开RichWin之类的内码转换工具呢?下面就我们所常用的一些&lt;a class="bluekey" href="http://product.yesky.com/software/" target="_blank"&gt;软件&lt;/a&gt;来介绍一下。在实际应用中，我们遇到纯西文文本乱码情况较少，而对于中文文本，由于汉字编码的不同，像大陆的简体国标码(GB)与港台地区的大五码(Big5)无法通用的情况却经常碰到，限于篇幅，本文仅介绍大五码转换为国标码的情况。 &lt;br /&gt;&lt;br /&gt;　　先来看一下Microsoft公司的产品吧！在Word 2000 (Word 97  则不行)中，选择要打开所要转码的文件，这时会弹出如图1所示对话框，选择“其它编码”中的“繁体中文(Big5)”  一项，打开后，再选择“文件”中的“另存为”，注意，选择存盘格式不能为“文本”，包括“编码文本”，否则，存盘后打开仍为乱码。建议先存为“Word文档",  存盘后打开再存为纯文本等格式。以后打开该文件，我们便可直接阅读了。在Internet Explorer 5.0 (即我们常说的&lt;a class="bluekey" href="http://product.yesky.com/net/" target="_blank"&gt;网络&lt;/a&gt;探索者IE  5.0)中，打开文件，若显示不为乱码，这是因为在菜单栏中的“查看→编码”里设置为“自动选择”，但这并不影响内码转换。接下来的操作与Word中相似，选择“另存为”，弹出的对话框中有“文件名、保存类型、编码”等选项，打开时选择的编码与保存时选择的编码的种种配合，会影响最终保存文件。（不信？大家自己可以试试  ！）建议如下操作：打开文件时便在“查看→编码”中设置为“自动选择”，存盘时保存类型选“Web页”,  编码选Unicode,这样保存过的文件再次打开后，编码不管选择简体中文(GB2321)、简体中文(HZ)、还是Unicode(UTF－8)和繁体中文(Big5)，最终显示都一样，均为我们可识别的繁体中文。（注意，在IE4.0中则无此功能！）如果你不喜欢繁体中文，在Word2000中提供了一个“中文简繁转换”的工具，在菜单栏中的“工具→语言→中文简繁转换”即可看到它。在Windows2000(Bate版)中也提供了这样的功能，一个方便的“代码转换工具”，如图2  所示为Win2000“开始→&lt;a class="bluekey" href="http://dev.yesky.com/" target="_blank"&gt;程序&lt;/a&gt;→附件”中的局部图，该工具使用很简单，仅有“来?  、“目标”、“选项”三个标签页，如果本文前文所述已搞清楚，那么对这个代码转换工具的使用也就不会有什么问题了！这里就不多写了。另外，这个工具还提供了中文简体字/繁体字转换、半角/全角字符转换等功能，如图3所示。不过，这个工具在Win9x中并没有提供，如果你想使用这个工具，而你的机器配置又太低的话，你可以找个装有Win2000的机器,  设法把这个工具拷贝过去。不过，本人将其可执行文件拷入Win98后并不能用，不知为何，这里还望各位大侠指点。&lt;br /&gt;&lt;br /&gt;　　下面来看一下金山公司的WPS吧!  在WPS 97中提供了在打开文件时自动识别国标、大五码的功能，还可以将页面或框中的文字输出到不同内码的文本文件中。它的输出格式只有文本文件和WPS文件；WPS  2000支持 GB 2312 、BIG5、GBK等三种主要汉字编码，并可以在输出 RTF 、TXT、HTM 文件时对文件的内码进行 GB 2312 与 BIG5  的相互转换。WPS相比WORD的优点在于: 打开和输出的文本文件为简体中文，不需再次转换。 &lt;br /&gt;&lt;br /&gt;　　除了以上软件外，市面上还有一些专门在此方面显身手的产品。如华语通（图4所示），它像Win2000中提供的“代码转换工具”一样，专门进行国标码和大五码之间的相互转换。它支持文本、Web页、RTF格式，提供了批量文件转换、打开剪贴板及预览的功能，转换后得到的是简体中文。该软件为免费软件，可从http://lanny.yeah.net下载得到。由于软件只进行国标码和大五码之间的相互转换，所以界面简单直观，点击“批量文件转换”，即可进行文件的选择、保存路径的设置等操作。（是不是有点动心？） &lt;br /&gt;&lt;br /&gt;　　 Text  Robot（如图5）也是一款进行内码转换的工具，其界面不如华语通漂亮，但它的功能还是挺强的,有格式转换、文件合并、内码转换、段落重排、查剪贴板等功能。Text  Robot不仅支持Big5到GBK的转换,还支持Big5到GBK简体的转换和GBK繁体到GBK简体的转换，支持多文件操作。使用时，先确定是单文件还是多文件，再选源文件或创建文件列表，然后进行你所需要的操作，图5中左上角的四个按钮是它的四个功能。它比华语通功能略强的地方是支持的内码多，可将文本格式转换为Web页，并且可选择Web页的字符集、背景颜色、文字颜色和链接颜色。该软件也为免费软件，可从作者个人主页（http://denvor.yeah.net）下载得到。其它的一些诸如RichWin、MagicWin、Njstar、LAT等多内码识别软件,虽然也可进行内码转换，但转换是动态的，不能将转换后的部分进行存盘操作，即使你试着去进行复制粘贴，得到的依旧是乱码。 &lt;br /&gt;&lt;br /&gt;　　一些专业的汉化软件如东方快车等，也提供了批量内码转换的功能。在东方快车中，用鼠标选中转码的文本文件，按住鼠标不放，把它们拖到东方快车上方，文件将被自动进行转码，生成的文件后缀名为gb_或b5_，转码还是比较方便的。当然，你也可在菜单中找到“批量内码转换”这一项，在该界面中进行转码。你可在帮助信息中找到详细的用法介绍，这里便不多写了。 &lt;br /&gt;&lt;br /&gt;　　一些电子小说阅读器之类的软件（如ReadBook）也可进行多种内 码转换。以 ReadBook  (如图5)为例，它支持Txt、Html、Wps等多种文件格式，同时支持GB、BIG5码，并可自动识别乱码。在ReadBook中，打开为乱码（Big5码）的文件,在工具栏右侧,勾选“Big5码”，图中已放大显示，“智能分段”可不选。（选？不选？大家自己可试试。这个影响并不大！）然后再选择存盘即可。ReadBook为共享软件，可从http://ReadBook.126.com下载得到，软件不大，只有400K。不过ReadBook每次只能转换当前的一个文件。（毕竟内码转换只是它的附带功能！） &lt;br /&gt;&lt;br /&gt;　　除了商业软件外，在Internal网上应该还有许多像这样的转码软件，不过，我只找到这几个。 &lt;br /&gt;&lt;br /&gt;　　有了上面介绍的任意一款软件，你就再也不会为复制粘贴后的乱码而发愁了，从而可以轻松地引用Big5码中的文字。怎么样 ？快试一试吧！ &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-104315518444973452?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/104315518444973452/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=104315518444973452' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/104315518444973452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/104315518444973452'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/04/blog-post_28.html' title='告别乱码'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-7132521531230610690</id><published>2009-04-28T10:58:00.000+08:00</published><updated>2009-04-28T10:59:21.084+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='常用软件端口'/><title type='text'>游戏、常用软件的IP及端口</title><content type='html'>摘自：&lt;span style="color:#ff0000;"&gt; &lt;a href="http://www.downspc.cn/"&gt;www.downspc.cn&lt;/a&gt;&lt;/span&gt;&lt;div class="articleContent" id="articleBody"&gt; &lt;p&gt; &lt;wbr&gt;&lt;/p&gt; &lt;div&gt;&lt;span style="color:#ff0000;"&gt;给大家提供一些软件、游戏的IP及其端口供大家参考，不对的地方请大家补充：&lt;br /&gt;&lt;br /&gt;msn服务器地址&lt;br /&gt;&lt;br /&gt;65.54.225.254&lt;br /&gt;65.54.226.254&lt;br /&gt;65.54.228.244&lt;br /&gt;65.54.228.253&lt;br /&gt;65.54.229.248&lt;br /&gt;65.54.229.253&lt;br /&gt;65.54.225.241&lt;br /&gt;65.54.226.247&lt;br /&gt;&lt;br /&gt;qq服务器地址&lt;br /&gt;&lt;br /&gt;219.133.40.15&lt;br /&gt;218.17.209.23&lt;br /&gt;202.104.129.252&lt;br /&gt;218.18.95.153&lt;br /&gt;202.104.129.251&lt;br /&gt;61.144.238.145&lt;br /&gt;202.104.129.253&lt;br /&gt;61.141.194.203&lt;br /&gt;202.104.129.254&lt;br /&gt;218.18.95.165&lt;br /&gt;61.144.238.146&lt;br /&gt;219.133.40.91&lt;br /&gt;211.248.99.252&lt;br /&gt;218.17.217.66&lt;br /&gt;61.144.238.156&lt;br /&gt;219.133.40.89&lt;br /&gt;219.133.40.115&lt;br /&gt;219.133.40.90&lt;br /&gt;219.133.40.113&lt;br /&gt;219.133.40.114&lt;br /&gt;210.22.12.126&lt;br /&gt;61.141.194.223&lt;br /&gt;61.172.249.135&lt;br /&gt;202.104.128.233&lt;br /&gt;202.96.170.164&lt;br /&gt;218.17.217.103&lt;br /&gt;218.66.59.233&lt;br /&gt;61.141.194.207&lt;br /&gt;202.96.170.163&lt;br /&gt;202.96.170.166&lt;br /&gt;202.96.140.18&lt;br /&gt;202.96.140.119&lt;br /&gt;202.96.140.8&lt;br /&gt;202.96.140.12&lt;br /&gt;&lt;br /&gt;QQ的端口有:tcp:4000+N个QQ登陆，如果登陆3个QQ，那么它的端口就是4003，但如果内网太多QQ登陆的话，它的端口就没规律了，所以还是封服务器好！&lt;br /&gt;&lt;br /&gt;qq直播:13000-14000  udp&lt;br /&gt;&lt;br /&gt;网络游戏端口：&lt;br /&gt;QQ幻想6299&lt;br /&gt;QQ堂443&lt;br /&gt;QQ音速28008&lt;br /&gt;丝路传说：15779&lt;br /&gt;霸王大路11002  ，11000&lt;br /&gt;传奇世界：7100，7000  ，7200&lt;br /&gt;大话西游：6588 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt;大堂风云：31803&lt;br /&gt;大堂豪侠：6445&lt;br /&gt;刀剑1440&lt;br /&gt;劲舞团：25511-，25510&lt;br /&gt;浩方5050 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt;华夏2：2008 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt;剑侠情愿25622&lt;br /&gt;篮球：10001  ，&lt;br /&gt;梦幻西游：55088&lt;br /&gt;魔域：5816 ，&lt;br /&gt;卡卡跑车：39311：&lt;br /&gt;魔兽世界：40041，&lt;br /&gt;泡泡堂：54321  5858&lt;br /&gt;热血江湖：13000&lt;br /&gt;完美世界：29000&lt;br /&gt;景天动地：&lt;br /&gt;神气：30810&lt;br /&gt;五岭外传：29000 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt;水浒Q传：8000，&lt;br /&gt;热血传奇：7000  7100&lt;br /&gt;天堂一：2000&lt;br /&gt;联众：2000&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;讯雷&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;端口:3077 3076&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P: 202.96.155.91,  210.22.12.53 61.128.198.97&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;网络精灵(NetFairy 2004)&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:7777,  7778,11300,&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P: 61.134.33.5,  61.233.75.13, 61.138.213.251, &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;222.240.210.68, 61.177.95.140, 61.177.95.137&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;电骡&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;端口:4662,4661,4242&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I  P:62.241.53.15&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;酷狗&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:7000,3318&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;I P: 218.16.125.227 61.143.210.56 218.16.125.226&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;61.129.115.206 61.145.114.33&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;比特精灵:&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;端口:16881&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;宝酷&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口: 6346&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;I P: 61.172.197.196 218.1.14.3 218.1.14.4 218.1.14.9 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;61.172.197.209 61.172.197.197 218.1.14.5  218.5.72.118&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;61.172.197.196&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;百事通下载工具&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P: 61.145.126.150 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;百度MP3下载&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;端口:&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P:  202.108.156.206 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;PTC下载工具&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:50007&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P: &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;eDonkey2000下载工具&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;端口:4371 4662&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P: 62.241.53.15  62.241.53.17&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;Poco2005&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:8094 2881 5354&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P: 61.145.118.224 210.192.122.147 207.46.196.108&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;卡盟&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;端口:3751 3753 4772 4774&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P:  211.155.224.67&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;维宇RealLink&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I  P: 211.91.135.114 221.233.18.180 61.145.119.55 221.3.132.99&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;百宝&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:  3468&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P: 219.136.251.56  61.149.124.173 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;百花PP&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:  5093 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P:  221.229.241.243&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;快递通&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I  P: 202.96.137.56 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;酷乐&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:6801 6800 7003&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P:218.244.45.67 220.169.192.145&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;百度下吧&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;端口: 11000&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P:  202.108.249.171&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;百兆P2P&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口: 9000&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;I P: 221.233.19.30&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;石头(OPENEXT)&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口:5467 2500 4173  10002 10003&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P:66.197.13.166  210.22.12.245 69.93.222.56 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;iLink 1.1&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口：5000&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P：&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;DDS&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口：11608&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I P：210.51.168.13 211.157.105.252  212.179.66.17&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;iMesh 5&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口：4662&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;I P：212.179.66.17 212.179.66.24 38.117.175.23&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;winmx&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;端口：5690&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;I  P：64.246.15.43&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;网酷&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口：2122&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;I P：211.152.22.9 211.152.22.101 221.192.132.29&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;PPlive网络电视&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口：UDP  4004&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;端口：TCP  8008&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;常见网络游戏的端口列表&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 1007  联众游戏－暗棋&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 2000 联众游戏大厅&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 2002 联众游戏－聊天室&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 2005 联众游戏－麻将&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3000 联众游戏－围棋&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3001  联众游戏－俄罗斯方块&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3002 联众游戏－三打一&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 3003 联众游戏－斗地主&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3004 联众游戏－升级&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3005 联众游戏－梭哈&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3006  联众游戏－拱猪&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3007 联众游戏－够级&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 3008 联众游戏－双扣&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3010 联众游戏－跑得快&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3012 联众游戏－飞行棋&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3013  联众游戏－拼图&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3015 联众游戏－台球&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 3016 联众游戏－原子&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3017 联众游戏－510k&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3018 联众游戏－憋7&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3019  联众游戏－黑白棋&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3020 联众游戏－锄大地&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 3021 联众游戏－炒地皮&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3022 联众游戏－炸弹人&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3023 联众游戏－敲三家&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3050  联众游戏－五子棋&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3060 联众游戏－桥牌&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 3100 联众游戏－跳棋&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3200 联众游戏－中国象棋&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3300 联众游戏－国际象棋&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 3400  联众游戏－四国军棋&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 4000~4010 联众游戏－GICQ&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8000 上海热线游戏&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8003  上海热线游戏&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8012 上海热线游戏&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 8013 上海热线游戏&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8014 上海热线游戏&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8015 上海热线游戏&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8016  上海热线游戏&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8017 上海热线游戏&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 8026 上海热线游戏&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8000  中国游戏中心-大厅&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8001 中国游戏中心-台球&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 8004 中国游戏中心-麻将&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8011  中国游戏中心-围棋&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8012 中国游戏中心-军棋&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 8018 中国游戏中心-大怪路子&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8032  中国游戏中心-炒地皮&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;中国游戏中心所有游戏的端口号应该在TCP8000~8040之内。其它游戏未一一查看。&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 7000~7200 盛大传奇&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 7000 盛大传奇世界&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 7080 盛大传奇?&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 7100  盛大传奇世界&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 7200~7205 盛大传奇世界&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 41820 盛大 疯狂坦克&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 44405 9c奇迹MU&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 6666 天堂2&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 7777  天堂2&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8001 网上赢家&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 2050 凯思帝国游戏在线&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8000  上海热线游戏频道，中国游戏中心&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 9696 中国围棋网&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 4000 边锋网络游戏世界&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8300~8400  坦克宝贝&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 5050 浩方，通讯用&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 1203 浩方游戏&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 4300 天娇&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 7000 天娇&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 21188  梦幻西游&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 27545 梦幻西游－下载&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 7488 大话西游－上海专区&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 7388  大话西游－江苏专区&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 航海世纪&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP  3838，4848，29865 泡泡堂&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 6661 剑侠情缘&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 9014 魔力宝贝&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP/UDP 8000 腾讯QQ&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8001 腾讯QQ&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 443 腾讯QQ&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;UDP 1429  腾讯QQ&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;UDP 6000-6004 腾讯QQ语音&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 1863 MSN&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;UDP 3001 UC&lt;br /&gt; &lt;wbr&gt;   &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;UDP 3002 UC&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 9999  光大证券 218.1.119.199； 202.96.172.200&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 9999  中信证券202.108.253.154&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8601  光大证券天网2003－218.1.72.93&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8999  光大证券天网2003下单&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8002;8003;8013;8023;8033;8043  光大证券天网2003委托交易&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8888 证券之星&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP 7708-7709 国信证券－鑫网通达信证券分析交易系统&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 8601  申银万国 神网E通&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP 22221，22223，22224  大智慧，218.242.245.227，61.151.248.202&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;TCP  5002 听歌219.142.78.75&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;  &lt;wbr&gt;UDP 5004  听歌219.142.78.75&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP6881~6889，6969，8881~8889，16881~16889 BT常用端口&lt;br /&gt; &lt;wbr&gt;  &lt;wbr&gt; &lt;wbr&gt;   &lt;wbr&gt;TCP4662 eDonkey&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-7132521531230610690?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/7132521531230610690/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=7132521531230610690' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7132521531230610690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7132521531230610690'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/04/ip.html' title='游戏、常用软件的IP及端口'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-6602165805499140485</id><published>2009-04-28T10:57:00.001+08:00</published><updated>2009-04-28T10:57:55.571+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='语录 娱乐'/><title type='text'>语录100句 暴笑+发人深思的笑 经典</title><content type='html'>&lt;div class="articleContent" id="articleBody"&gt;&lt;div style="font-size: 16px;"&gt;&lt;span style="font-size: 13px; color: rgb(255, 51, 0); line-height: 1.8em;"&gt;001◎老鼠一发威，大家都是病猫。&lt;br /&gt;002◎和一MM争论鲸鱼是不是鱼，最后我说“曰本人也带个人字”，她这才同意鲸鱼不是鱼。 &lt;wbr&gt; &lt;wbr&gt;&lt;br /&gt;003◎男人膝下有黄金，我把整个腿都切下来了，连块铜也没找着！&lt;br /&gt;004◎春天我把玉米埋在土里，到了秋天我就会收获很多玉米。春天我把老婆埋在土里，到了秋天我就会…被枪毙！&lt;br /&gt;005◎如果你看到面前的阴影，别怕，那是因为你的背后有阳光！&lt;br /&gt;006◎踏遍青楼人未老，请用汇仁肾宝。&lt;br /&gt;007◎听君一席话，省我十本书！&lt;br /&gt;008◎0岁出场亮相，10岁天天向上。20岁远大理想，30岁发奋图强。40岁基本定向，50岁处处吃香。60岁打打麻将，70岁处处闲逛。80岁拉拉家常，90岁挂在墙上！&lt;br /&gt;009◎脱了衣服我是禽兽，穿上衣服我是衣冠禽兽！&lt;br /&gt;010◎师太，你就从了老衲吧！…很久很久以后…师太，你就饶了老衲吧！&lt;br /&gt;011◎“亲爱的，我…我怀孕了…三个月了，不过你放心，不是你的，不用你负责……”&lt;br /&gt;012◎我们产生一点小分歧：她希望我把粪土变黄金，我希望她视黄金如粪土。&lt;br /&gt;013◎读10年语文，不如聊半年QQ。&lt;br /&gt;014◎早晨懒床，遂从口袋里掏出6枚硬币：如果抛出去六个都是正面，我就去上课！思躇良久，还是算了，别冒这个险了……&lt;br /&gt;015◎我花8万买了个西周陶罐，昨儿到《鉴宝》栏目进行鉴定，专家严肃地说：“这哪是西周的？这是上周的！”&lt;br /&gt;016◎我能容忍身材是假的，脸是假的，胸是假的，臀是假的！！！但就是不容忍钱是假的！！！！&lt;br /&gt;017◎士为知己者装死，女为悦己者整容。&lt;br /&gt;018◎长大了要嫁给唐僧，能玩就玩，不能玩就把他吃掉。&lt;br /&gt;019◎一山不能容二虎，除非一公和一母。&lt;br /&gt;020◎千万别等到人人都说你丑时才发现自己真的丑。&lt;br /&gt;021◎如果朋友可以出卖，每个值五块的话，我也能发笔小财了。&lt;br /&gt;022◎征婚启事：要求如下，A活的，B女的。&lt;br /&gt;023◎给点阳光我就腐烂。&lt;br /&gt;024◎要适当吃一点，才有劲减肥啊。&lt;br /&gt;025◎摇啊摇，摇到奈何桥。&lt;br /&gt;026◎命运负责洗牌，但是玩牌的是我们自己！&lt;br /&gt;027◎问：你喜欢我哪一点？答：我喜欢你离我远一点！&lt;br /&gt;028◎你快回来，我一人忽悠不来！&lt;br /&gt;029◎生活就像宋祖德的嘴，你永远都不知道下一个倒霉的会是谁~~~&lt;br /&gt;030◎跌倒了，爬起来再哭~~~&lt;br /&gt;031◎世界上难以自拔的，除了牙齿，还有爱情。&lt;br /&gt;032◎一恐龙路过西安交大时上了趟厕所，出来后她呜咽道：“555，这辈子终于不愁嫁不出去了……”&lt;br /&gt;033◎生，容易。活，容易。生活，不容易。&lt;br /&gt;034◎吾表兄，年四十余。始从文，连考三年而不中。遂习武，练武场上发一矢，中鼓吏，逐之出。改学医，自撰一良方，服之，卒。&lt;br /&gt;035◎问君能有几多愁，恰似一群太监上青楼……&lt;br /&gt;036◎吾生也有涯，而吃也无涯~~~&lt;br /&gt;037◎想污染一个地方有两种方法：垃圾，或是钞票！&lt;br /&gt;038◎年轻的时候，我们常常冲着镜子做鬼脸；年老的时候，镜子算是扯平了。&lt;br /&gt;039◎你瞎了眼啊？这么大的盾牌你看不见，偏偏要把石头朝我脑袋上扔！&lt;br /&gt;040◎出问题先从自己身上找原因，别一便秘就怪地球没引力。&lt;br /&gt;041◎拍脑袋决策，拍胸脯保证，拍屁股走人。&lt;br /&gt;042◎我们走得太快，灵魂都跟不上了……&lt;br /&gt;043◎不要和地球人一般见识~~~&lt;br /&gt;044◎女孩从处女到女人只要一次并成功，男孩从处男变男人需要反复的磨练！&lt;br /&gt;045◎出来混，老婆迟早是要换的！&lt;br /&gt;046◎小时候我以为自己长大后可以拯救整个世界，等长大后才发现整个世界都拯救不了我……&lt;br /&gt;047◎有钱的都是大爷！但是欠钱不还的更是！&lt;br /&gt;048◎我就算是一只癞蛤蟆，我也决不娶母癞蛤蟆。&lt;br /&gt;049◎生前何必久睡，死后自会长眠……&lt;br /&gt;050◎不想当厨子的裁缝，不是好司机。&lt;br /&gt;051◎时间是最好的老师，但遗憾的是——最后他把所有的学生都弄死了。&lt;br /&gt;052◎去西安出差的路上，一位大连老兄一阵狂吹大连多好多好，然后说大连建市一百周年的时候举行了很隆重的庆祝活动云云，然后问了旁边一人：“西安建市一百周年有什么庆祝活动没有？”旁边几位西安的哥们一愣，过了一会儿，逼出一句话来：“我记得西安建市600年的时候搞了一个‘烽火戏诸侯’吧……”&lt;br /&gt;053◎钻石恒久远，一颗就破产！&lt;br /&gt;054◎和谐校园里，骑自行车的也许是位博导，而开奔驰的则可能是个后勤……&lt;br /&gt;055◎是金子，总会花光的；是镜子，总会反光的……&lt;br /&gt;056◎我女友不当尼姑的原因是她四级没过，庵里不收。&lt;br /&gt;057◎明星脱一点就能更出名，我脱的光光的却被抓起来了！&lt;br /&gt;058◎看一漂亮MM,苦无搭讪办法，路旁一砖头，拣起，上前，“同学，这是你掉的吧？”&lt;br /&gt;059◎小时候的梦想并不是要当什么科学家，幻想自己是地主家的少爷，家有良田千顷，终日不学无术，没事领着一群狗奴才上街去调戏一下良家少女……&lt;br /&gt;060◎别和我谈理想，戒了！&lt;br /&gt;061◎玫瑰你的，巧克力你的，钻石你的。你，我的！&lt;br /&gt;062◎所谓惊喜就是你苦苦等候的兔子来了，后面跟着狼！&lt;br /&gt;063◎什么是幸褔？幸福就是猫吃鱼狗吃肉，奥特曼打小怪兽！&lt;br /&gt;064◎俩农夫吹牛：“俺们农场的鸡，吃的都是茶叶，下的全是茶叶蛋”“有嘛啊，咱农场给鸡吃钱包，让它下荷包蛋。”&lt;br /&gt;065◎蟑螂都不怕蟑螂药了，我们却连维生素都搞不定！&lt;br /&gt;066◎长个包子样就别怨狗跟着！&lt;br /&gt;067◎男人偷腥时的智商仅次于爱因斯坦！&lt;br /&gt;068◎为中华而努力读书！一包中华好多钱啊……&lt;br /&gt;069◎如果你不能给你的女人穿上嫁衣，那么千万别停下你解开她衣扣的手！&lt;br /&gt;070◎别以为穿着脏衣服就可以做污点证人；别以为穿着木制拖鞋就可以做木屐证人……&lt;br /&gt;071◎事业是国家的，荣誉是单位的，成绩是领导的，工资是老婆的，财产是孩子的，错误是自己的。&lt;br /&gt;072◎凤凰重生就是涅盘，野鸡重生就是尸变。&lt;br /&gt;073◎如果有一天我变成流氓，请告诉别人，我纯真过……&lt;br /&gt;074◎老子不但有车，还是自行的……&lt;br /&gt;075◎女人拥有无数个QQ号只为了调戏一个男人，男人常用一个QQ号上面加满各种各样的女人……&lt;br /&gt;076◎偶然看见书上所谓的当代女子择偶标准：“有车有房，父母双亡。”郁闷。遂写下幻想中的选妻标准：“家中财产过亿，美貌天下第一，贤惠温柔性感，岳父癌症晚期……”&lt;br /&gt;077◎大部分人一辈子只做三件事：自欺、欺人、被人欺。&lt;br /&gt;078◎睡眠是一门艺术——谁也无法阻挡我追求艺术的脚步！&lt;br /&gt;079◎为了避免家庭暴力，于是我决定不结婚！&lt;br /&gt;080◎你可以像猪一样的生活，但你永远都不能像猪那样快乐！&lt;br /&gt;081◎迅雷不及掩耳盗铃，以不变应万变不离其宗，成事不足挂齿，此物最相思风雨中，一屋不扫何以扫天下无敌，东边日出西边雨一直下，举头望明月几时有，呆若木鸡毛当令箭，杀鸡焉用牛刀小试，锋芒毕露春光，围魏救赵宝奎，Very  good  bye，八格牙鲁冰花，一泻千里共婵娟……&lt;br /&gt;082◎某女的一篇博客日记：某月某日，大醉而归，伸手一摸——手机和贞操都在，睡觉！&lt;br /&gt;083◎又美丽、又纯洁、又温柔、又性感、又可爱的处女，就像鬼魂一样，男人们都在谈论它，但从来没有人亲眼见过……&lt;br /&gt;084◎记得小学老师骂我：“我一巴掌把你踢出去！”当时我想笑却不敢笑。现在，是敢笑却不会笑了……&lt;br /&gt;085◎如果幸福是浮云，如果痛苦似星辰。那我的生活真是万里无云，漫天繁星……&lt;br /&gt;086◎避孕的效果：不成功，便成“人”。&lt;br /&gt;087◎孤单是一个人的狂欢，狂欢是一群人的孤单。&lt;br /&gt;088◎这世上最累的事情，莫过于眼睁睁看着自己的心碎了，还得自己动手把它粘起来。&lt;br /&gt;089◎人生的悲惨在于：辛辛苦苦的作了一晚上内容香艳的美梦，第二天早上醒来居然全都记不起来了！&lt;br /&gt;090◎父亲问我人生有什么追求？我回答金钱和美女，父亲凶狠的打了我的脸；我回答事业与爱情，父亲赞赏的摸了我的头。&lt;br /&gt;091◎男人都好色，色心稍强一点叫色狼，再强一点叫色鬼，更加强就叫色魔，尤其强那就成了变态色魔，好色到了极致，被称作人体美学艺术家。&lt;br /&gt;092◎记得刚毕业不久的一天，女友给我发了一条短信：“我们还是分手吧！”我还没来得及伤心呢，女友又发来一条：“对不起，发错了。”这下可以彻底伤心了……&lt;br /&gt;093◎此地禁止大小便，违者没收工具。&lt;br /&gt;094◎在街上看美女，目光高一点就是欣赏，目光低一点就是流氓。&lt;br /&gt;095◎孩儿他娘，咱这辈子还有很多事要做呢，别耽误功夫和我玩捉迷藏了，赶紧蹦出来吧~~~&lt;br /&gt;096◎女人一生喜欢两朵花：一是有钱花，二是尽量花！&lt;br /&gt;097◎一炮走红——是形容女艺人的……&lt;br /&gt;098◎这个世界不公平就在于：上帝说：“我要光！”于是有了白天。美女说：“我要钻戒！”于是她有了钻戒。富豪说：“我要女人！”于是他有了女人。我说：“我要洗澡！”居然停水了！&lt;br /&gt;099◎真不明白，女孩买很多很多漂亮衣服穿，就是为了吸引男孩的目光，但男孩想看的，却是不穿衣服的女孩。&lt;br /&gt;100◎偶尔幽生活一默你会觉得很爽，但生活幽你一默就惨了……&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-6602165805499140485?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/6602165805499140485/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=6602165805499140485' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6602165805499140485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/6602165805499140485'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/04/100.html' title='语录100句 暴笑+发人深思的笑 经典'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-7433323800237953632</id><published>2009-04-28T10:55:00.001+08:00</published><updated>2009-04-28T10:55:59.807+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='电脑 文件头 乱码 文档 office'/><title type='text'>office文档乱码修复技巧</title><content type='html'>&lt;div class="articleContent" id="articleBody"&gt;&lt;p&gt;摘自：&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;&lt;a href="http://www.downspc.cn/" target="_blank"&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt; &lt;wbr&gt;&lt;a href="http://www.downspc.cn/"&gt;www.downspc.cn&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;wbr&gt;&lt;span style="color:dimgray;"&gt;  &lt;wbr&gt;很多人都会经常或者时不时得打开office文档打开，然后显示乱码，或者直接是损坏都打不开，而这个问题困扰了我很久,而使用修复工具 &lt;wbr&gt; &lt;wbr&gt;Ecel  Fix &lt;wbr&gt; &lt;wbr&gt;Easy Recover &lt;wbr&gt; &lt;wbr&gt;Office Fix &lt;wbr&gt; &lt;wbr&gt;Word recove &lt;wbr&gt;   &lt;wbr&gt;&lt;span style="font-family:宋体;"&gt;修复好后也是乱码&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;，就用&lt;/span&gt;WINHEX&lt;span style="font-family:宋体;"&gt;打开此文件看了一下再对比一个可以正常打开的文件，发现文件头部有不同的地方。把好的文件头结构&lt;/span&gt;COPY&lt;span style="font-family:宋体;"&gt;一个，放到坏的上面，打开&lt;/span&gt;OK&lt;span style="font-family:宋体;"&gt;。用上述恢复软件修一下打开。效果是一样的。&lt;/span&gt;&lt;/span&gt;&lt;span style="color:dimgray;"&gt; &lt;wbr&gt;  &lt;wbr&gt;  &lt;span style="font-family:宋体;"&gt;有一部分乱码文档，也可以尝试一下使用不同的但可以相互识别的应用程序来打开。保存类型不同，而后用其它软件打开试一下，如果仍不能修复，也可以根据其格式进行手工外理，&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="color:dimgray;"&gt;&lt;span style="font-family:宋体;"&gt;如&lt;/span&gt;WPS&lt;span style="font-family:宋体;"&gt;格式的文件，出现问题后有时只需手工删除文件头就可以正常打开了。不过这样做也可能会导致丢失部分格式信息，&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:dimgray;"&gt;&lt;br /&gt;&lt;span style="font-family:宋体;"&gt; &lt;wbr&gt;   &lt;wbr&gt;其它的暂时没有了解。据我所知，文件头损坏的我们可以通软上述软件来搞一下，有三层的机会，其它损坏的。如恢复出来文件大小和原来的差的很多，比如原文件是&lt;/span&gt;35K&lt;span style="font-family:宋体;"&gt;。恢复出来的却是，&lt;/span&gt;20K&lt;span style="font-family:宋体;"&gt;，那这种的看都不要看了，还有一些恢复出来的是&lt;/span&gt;0&lt;span style="font-family:宋体;"&gt;字节的文件，这种更没用了。一修复软件就报错。下不去了。有时还会造成死机。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:dimgray;"&gt;&lt;br /&gt;&lt;span style="font-family:宋体;"&gt;给大家发几个转贴来的方案，不知有用没用，大家可以试试：&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:dimgray;"&gt;1&lt;span style="font-family:宋体;"&gt;．显示混乱的解决&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:dimgray;"&gt;&lt;span style="font-family:宋体;"&gt;在你使用上述方法打开受损&lt;/span&gt;Word&lt;span style="font-family:宋体;"&gt;文档后，如果文档的内容显示混乱，那么你可以将最后一个段落标记之外的所有内容复制到一个新文档中，或许能够解决乱码问题，操作步骤如下：&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:dimgray;"&gt;1&lt;/span&gt;&lt;span style="color:dimgray;"&gt;&lt;span style="font-family:宋体;"&gt;．&lt;/span&gt; &lt;span style="font-family:宋体;"&gt;选定最后一个段落标记之外的所有内容，方法是：按下&lt;/span&gt;Crtl+Home&lt;span style="font-family:宋体;"&gt;组合键，然后按下&lt;/span&gt;Crtl+Shift+End&lt;span style="font-family:宋体;"&gt;组合键，最后按下&lt;/span&gt;Shift+&lt;span style="font-family:宋体;"&gt;←&lt;/span&gt; &lt;span style="font-family:宋体;"&gt;组合键；&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:dimgray;"&gt;2&lt;/span&gt;&lt;span style="color:dimgray;"&gt;&lt;span style="font-family:宋体;"&gt;．&lt;/span&gt; &lt;span style="font-family:宋体;"&gt;在“常用”工具栏上，依次单击“复制”、“新建”和“粘贴”按钮。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:dimgray;"&gt;&lt;span style="font-family:宋体;"&gt;实际上，在&lt;/span&gt;Word&lt;span style="font-family:宋体;"&gt;文档中，系统用最后一个段落标记关联各种格式设置信息，特别是节与样式的格式设置。如果将最后一个段落标记之外的所有内容复制到新文档，就有可能将损坏的内容留在原始文档中，而在新文档中，重新应用所有丢失的节或样式的格式设置。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:dimgray;"&gt;&lt;span style="font-family:宋体;"&gt;再者告诫那些懂的一些&lt;/span&gt;IT&lt;span style="font-family:宋体;"&gt;技术的人员，在自己不明白数据恢复理论知识的人们，出现故障最好是找一些恢复技术较强的商家。而不是自己先试一下，不行再说，。。这种方式是不可取的。当然如果资料可有可无，这样做也是无可厚非的。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-7433323800237953632?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/7433323800237953632/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=7433323800237953632' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7433323800237953632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/7433323800237953632'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/04/office.html' title='office文档乱码修复技巧'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-101225020596813462</id><published>2009-04-28T10:43:00.002+08:00</published><updated>2009-04-28T10:52:12.658+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XP、大内存、优化'/><title type='text'>XP 大内存优化方法</title><content type='html'>来源：&lt;a href="http://www.newsunday.com/"&gt;秦爱网志&lt;/a&gt;&lt;div class="post-tags" style="text-align: left;"&gt; &lt;script language="JavaScript" type="text/javascript"&gt;strBatchCount+="spn870=870,"&lt;/script&gt;  &lt;/div&gt; &lt;div class="post-body"&gt; &lt;p&gt;最近将笔记本内存升级到了2G，由于没有完全发挥2G大内存的优势，秦爱查了一些资料，发现的确有一些办法可以利用大内存（2G以上）来给XP提速。&lt;/p&gt;&lt;p&gt;原理是：数据的读取速度调用速度：CPU＞内存＞硬盘，在XP下数据基本都从硬盘中读取出来的，如果我们将一些反复读写的临时文件等通过用不了的大内存来读取，那么就实现了XP提速的目标。XP  大内存优化一般有三种方法来实现：修改XP注册表、通过Ramdisk设置临时文件缓冲区、通过Supercache给硬盘的读写用高速内存来做缓存。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ramdisk&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Ramdisk就是一个用内存空间虚拟出的一个硬盘，在这里你可以把TEMP、&lt;a href="http://www.newsunday.com/catalog.asp?tags=ie" target="_blank"&gt;IE&lt;/a&gt;浏览历史缓存甚至虚拟内存等放到这个虚拟硬盘中，使用方法是&lt;a href="http://www.google.cn/custom?cx=008791500542020364895%3Aw1sqte2a_xc&amp;amp;ie=UTF-8&amp;amp;q=Ramdisk&amp;amp;sa=%E6%90%9C%E7%B4%A2&amp;amp;adkw=AELymgUkzaMN55W4K4695QqXg9-eYVvuy2ixCLJPEifq_DiKbZyZpVpSJUgh1sJrOJlzzlNskl5kgA46vxHSbQEBkGh2747kI6IeiMwJxTCbVIIixV-leU0&amp;amp;cof=AH%3Aleft%3BCX%3A%25E7%25BB%25BF%25E8%25BD%25AF%25E6%2590%259C%25E7%25B4%25A2%3BDIV%3A%23cccccc%3BFORID%3A1%3BGFNT%3A%23666666%3BL%3Ahttp%3A%2F%2Fwww.google.com%2Fcoop%2Fintl%2Fzh-Hans%2Fimages%2Fcustom_search_sm.gif%3BLH%3A65%3BLP%3A1%3BVLC%3A%23551a8b%3B&amp;amp;hl=zh-CN&amp;amp;oe=UTF-8&amp;amp;client=pub-6353291023250831" target="_blank"&gt;下载Ramdisk&lt;/a&gt; （&lt;a href="http://www.newsunday.com/UPLOAD/soft/Ramdisk.rar" target="_blank"&gt;RAR&lt;/a&gt;）后，打开软件安装内存盘就可以（见图一）。秦爱现在用得就是这款，主要将TEMP\TEM\IE临时文件\FIREFOX临时文件\PHOTOSHOP缓存区\虚拟内存放在Ramdisk生成的磁盘中。&lt;/p&gt; &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_phpN_dG8S_I/SfZvMs4oBUI/AAAAAAAAAKM/WSGyEH9rD_4/s1600-h/ramdisk.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 272px;" src="http://3.bp.blogspot.com/_phpN_dG8S_I/SfZvMs4oBUI/AAAAAAAAAKM/WSGyEH9rD_4/s400/ramdisk.jpg" alt="" id="BLOGGER_PHOTO_ID_5329569473037337922" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p style="text-align: center;"&gt;图一&lt;/p&gt; &lt;p&gt;●　TEMP\TEM设置：我的电脑-右键＝》高级＝》环境变量，设置包括“用户环境变量”和“系统环境变量”都改成R:\TEMP&lt;/p&gt; &lt;p&gt;●　IE临时文件设置：控制面板＝》intetnet选项＝》&lt;/p&gt; &lt;p&gt;常规＝》设置，修改IE的缓存目录路径。&lt;/p&gt; &lt;p&gt;●　FIREFOX临时文件：新建标签，输入“about:config”回车，在Config列表中点击右键，选择“新建→字符串”，在弹出的“新的字符串值”对话框“首选项名称”中输入“browser.cache.disk.parent_directory”确定，在下个窗口中输入“R:\FIREFOX  CACHE”即可。&lt;/p&gt; &lt;p&gt;●　PHOTOSHOP缓存区：编辑＝》预置＝》增效工具与暂存盘＝》暂存盘＝》第一，选R盘就可以。注意，如果你需要用PHOTOSHOP处理超大的图片，不要把暂存盘设为虚拟内存盘。&lt;/p&gt; &lt;p&gt;●　虚拟内存设置：由于你已经有了大内存，基本&lt;/p&gt; &lt;p&gt;上不需要XP的虚拟内存，且希望XP应该在用完&lt;a href="http://www.newsunday.com/post/515.html" target="_blank"&gt;物理内存&lt;/a&gt;后再用硬盘的虚拟内存，你可以将虚拟内存设置的小一些，然后再将其放到Ramdisk生成的虚拟内存盘中。操作步骤为：我的电脑-右键＝》高级＝》性能＝》设置＝》高级＝》虚拟内存＝》更改。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Supercache&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Supercache利用闲置的内存作为硬盘分区的缓存，可以大幅度提高硬盘的读写速度。当&lt;a href="http://www.google.cn/custom?hl=zh-CN&amp;amp;newwindow=1&amp;amp;client=pub-6353291023250831&amp;amp;cof=FORID%3A1%3BAH%3Aleft%3BCX%3A%25E7%25BB%25BF%25E8%25BD%25AF%25E6%2590%259C%25E7%25B4%25A2%3BL%3Ahttp%3A%2F%2Fwww.google.com%2Fcoop%2Fintl%2Fzh-Hans%2Fimages%2Fcustom_search_sm.gif%3BLH%3A65%3BLP%3A1%3BVLC%3A%23551a8b%3BGFNT%3A%23666666%3BDIV%3A%23cccccc%3B&amp;amp;adkw=AELymgUkzaMN55W4K4695QqXg9-eYVvuy2ixCLJPEifq_DiKbZyZpVpSJUgh1sJrOJlzzlNskl5kgA46vxHSbQEBkGh2747kI6IeiMwJxTCbVIIixV-leU0&amp;amp;q=Supercache&amp;amp;btnG=Google+%E6%90%9C%E7%B4%A2&amp;amp;cx=008791500542020364895%3Aw1sqte2a_xc" target="_blank"&gt;下载Supercache&lt;/a&gt; （&lt;a href="http://www.newsunday.com/UPLOAD/soft/supercache.rar" target="_blank"&gt;RAR&lt;/a&gt;）并安装成功后，在你的XP盘符上单击右键就可以看到选项卡上出现一个PERFORMANCE选项，点开会就可以进&lt;/p&gt; &lt;p&gt;行相关设置了（见图二）。由于其设置根据个人的电脑及思路有些不同，秦爱仅以电脑中有三个盘为例提供几个简单的设置参数：&lt;/p&gt;  &lt;p style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_phpN_dG8S_I/SfZvM-r08lI/AAAAAAAAAKU/2Q9_U4clc8E/s1600-h/SupercacheII.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 214px;" src="http://4.bp.blogspot.com/_phpN_dG8S_I/SfZvM-r08lI/AAAAAAAAAKU/2Q9_U4clc8E/s400/SupercacheII.jpg" alt="" id="BLOGGER_PHOTO_ID_5329569477815497298" border="0" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style="text-align: center;"&gt;图二&lt;/p&gt; &lt;p&gt;●　cache page size（缓存页大小）：32K，该值越小对CPU的压力相应就大，且产生磁盘碎片，如果该太大，还会占浪费大量的系统资源。&lt;/p&gt; &lt;p&gt;●　Cache size（缓存大小）：256M，默认是128M，自定义时应把握其要为4MB的整数倍。&lt;/p&gt; &lt;p&gt;●　Sort  algorithm（排序算法）：MRU，MRU即最近使用，即简单的排队原则，先进先出；MFU即最常使用，即每个文件被读取的时候，做一个简单的计数，当缓存满的时候，计数值小的先被清出缓存。&lt;/p&gt; &lt;p&gt;●　Read-ahead（预先读取）：1，指定预先读取的页数。&lt;/p&gt; &lt;p&gt;●　Deferred-write mode（延迟写入模式）：0，指定缓存页的平均写延时。&lt;/p&gt; &lt;p&gt;以上就是秦爱关于大内存用户XP系统下的优化提速方法，由于内容比较多且有些本人也是刚刚接触，只是给出了几种优化的思路，如果你有更好的想法或测评意见，可在评论中补充，我们共同探讨。&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-101225020596813462?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/101225020596813462/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=101225020596813462' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/101225020596813462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/101225020596813462'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/04/xp.html' title='XP 大内存优化方法'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_phpN_dG8S_I/SfZvMs4oBUI/AAAAAAAAAKM/WSGyEH9rD_4/s72-c/ramdisk.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-5732928018579523485</id><published>2009-04-28T10:42:00.001+08:00</published><updated>2009-04-28T10:42:52.654+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='word、文件修复'/><title type='text'>word文件修复窍门</title><content type='html'>&lt;h2 class="post-title"&gt;&lt;a href="http://www.newsunday.com/post/262.html" rel="bookmark"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/h2&gt; &lt;div class="post-tags" style="text-align: left;"&gt;来源：&lt;a href="http://www.newsunday.com/"&gt;秦爱网志&lt;/a&gt; ›&lt;/div&gt; &lt;div class="post-body"&gt; &lt;p&gt; 在你试图打开一个Word文档时，如果系统没有响应，那么可能的原因是该文档已经损坏。此时，请试试笔者以下所述方法，或许能够挽回你的全部或部分损失。&lt;br /&gt;&lt;br /&gt;一、自动恢复尚未保存的修改&lt;br /&gt;&lt;br /&gt;Word  提供了“自动恢复”功能，可以帮助用户找回程序遇到问题并停止响应时尚未保存的信息。实际上，在你不得不在没有保存工作成果就重新启动电脑和Word后，系统将打开“文档恢复”任务窗格，其中列出了程序停止响应时已恢复的所有文件。文件名后面是状态指示器，显示在恢复过程中已对文件所做的操作，其中：“原始文件”指基于最后一次手动保存的源文件；“已恢复”是指在恢复过程中已恢复的文件，或在“自动恢复”保存过程中已保存的文件。&lt;br /&gt;&lt;br /&gt;“文档恢复”任务窗格可让你打开文件、查看所做的修复以及对已恢复的版本进行比较。然后，你可以保存最佳版本并删除其他版本，或保存所有打开的文件以便以后预览。不过，“文档恢复”任务窗格是Word  XP提供的新功能，在以前的版本中，Word将直接把自动恢复的文件打开并显示出来。&lt;br /&gt;&lt;br /&gt;二、手动打开恢复文件&lt;br /&gt;&lt;br /&gt;在经过严重故障或类似问题后重新启动Word时，程序自动任何恢复的文件。如果由于某种原因恢复文件没有打开，你可以自行将其打开，操作步骤如下：&lt;br /&gt;&lt;br /&gt;1．  在“常用”工具栏上，单击“打开”按钮；&lt;br /&gt;&lt;br /&gt;2．在文件夹列表中，定位并双击存储恢复文件的文件夹。对于Windows  2000/XP操作系统，该位置通常为“C:\documents and settings\\Application  Data\Microsoft\Word”文件夹；对于Windows 98／Me操作系统，该位置通常为“C:\ Windows\Application  Data\Microsoft\Word”文件夹；&lt;br /&gt;&lt;br /&gt;3． 在“文件类型”框中单击“所有文件”。每个恢复文件名称显示为“‘自动恢复’保存file  name”及程序文件扩展名；&lt;br /&gt;&lt;br /&gt;4． 单击要恢复的文件名，然后单击“打开”按钮。&lt;br /&gt;&lt;br /&gt;三、“打开并修复”文件&lt;br /&gt;&lt;br /&gt;Word  XP提供了一个恢复受损文档的新方法，操作步骤如下：&lt;br /&gt;&lt;br /&gt;1． 在“文件”菜单上，单击“打开”命令；&lt;br /&gt;&lt;br /&gt;2．  在“查找范围”列表中，单击包含要打开的文件的驱动器、文件夹或Internet位置；&lt;br /&gt;&lt;br /&gt;3．  在文件夹列表中，定位并打开包含文件的文件夹；&lt;br /&gt;&lt;br /&gt;4． 选择要恢复的文件；&lt;br /&gt;&lt;br /&gt;5．  单击“打开”按钮旁边的箭头，然后单击“打开并修复”（图3）。&lt;br /&gt;&lt;br /&gt;四、从任意文件中恢复文本&lt;br /&gt;&lt;br /&gt;Word提供了一个“从任意文件中恢复文本”的文件转换器，可以用来从任意文件中提取文字。要使用该文件转换器恢复损坏文件中的文本，操作步骤如下：&lt;br /&gt;&lt;br /&gt;1．  在“工具”菜单上，单击“选项”命令，再单击“常规”选项卡；&lt;br /&gt;&lt;br /&gt;2． 确认选中“打开时确认转换”复选框，单击“确定”按钮；&lt;br /&gt;&lt;br /&gt;3．  在“文件”菜单上，单击“打开”命令；&lt;br /&gt;&lt;br /&gt;4．  在“文件类型”框中，单击“从任意文件中恢复文本”。如果在“文件类型”框中没有看到“从任意文件中恢复文本”，则需要安装相应的文件转换器。安装方法不做赘述；&lt;br /&gt;&lt;br /&gt;5．  像通常一样打开文档。&lt;br /&gt;&lt;br /&gt;此时，系统会弹出“转换文件”对话框，请选择的需要的文件格式。当然，如果要从受损Word文档中恢复文字，请选择“纯文本”，单击“确定”按扭。不过，选择了“纯文本”，方式打开文档后，仅能恢复文档中的普通文字，原文档中的图片对象将丢失，页眉页脚等非文本信息变为普通文字。&lt;br /&gt;&lt;br /&gt;五、禁止自动宏的运行&lt;br /&gt;&lt;br /&gt;如果某个Word文档中包含有错误的自动宏代码，那么当你试图打开该文档时，其中的自动宏由于错误不能正常运行，从而引发不能打开文档的错误。此时，请在  “Windows资源管理器”中，按住Shift键，然后再双击该Word文档，则可阻止自动宏的运行，从而能够打开文档。&lt;br /&gt;&lt;br /&gt;六、创建新的Normal模板&lt;br /&gt;&lt;br /&gt;Word在Normal.dot模板文件中存储默认信息，如果该模板文件被损坏，可能会引发无法打开Word文档的错误。此时，请创建新的Normal模板，操作步骤如下：&lt;br /&gt;&lt;br /&gt;1．  关闭Word；&lt;br /&gt;&lt;br /&gt;2．使用Windows“开始”菜单中的“查找”或“搜索”命令找到所有的Normal.dot文件，并重新命名或删除它们。比如，在Windows  XP中，请单击“开始”，再单击“搜索”，然后单击“所有文件和文件夹”，在“全部或部分文件名”框中，键入“normal.dot”，在“在这里寻找”  列表框中，单击安装Word的硬盘盘符，单击“搜索”按钮。查找完毕，右键单击结果列表中的“Normal”或“Normal.dot”，然后单击“重命名”命令，为该文件键入新的名称，例如“Normal.old”，然后按Enter键；&lt;br /&gt;&lt;br /&gt;3．  启动Word&lt;br /&gt;&lt;br /&gt;此时，由于Word无法识别重命名后的Normal模板文件，它会自动创建一个新的Normal模板。&lt;br /&gt;&lt;br /&gt;七、显示混乱的解决&lt;br /&gt;&lt;br /&gt;在你使用上述方法打开受损Word文档后，如果文档的内容显示混乱，那么你可以将最后一个段落标记之外的所有内容复制到一个新文档中，或许能够解决乱码问题，操作步骤如下：&lt;br /&gt;&lt;br /&gt;1．  选定最后一个段落标记之外的所有内容，方法是：按下Crtl+Home组合键，然后按下Crtl+Shift+End组合键，最后按下Shift+←  组合键；&lt;br /&gt;&lt;br /&gt;2．  在“常用”工具栏上，依次单击“复制”、“新建”和“粘贴”按钮。&lt;br /&gt;&lt;br /&gt;实际上，在Word文档中，系统用最后一个段落标记关联各种格式设置信息，特别是节与样式的格式设置。如果将最后一个段落标记之外的所有内容复制到新文档，就有可能将损坏的内容留在原始文档中，而在新文档中，重新应用所有丢失的节或样式的格式设置。&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-5732928018579523485?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyukuan.blogspot.com/feeds/5732928018579523485/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9217114&amp;postID=5732928018579523485' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/5732928018579523485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9217114/posts/default/5732928018579523485'/><link rel='alternate' type='text/html' href='http://liuyukuan.blogspot.com/2009/04/word.html' title='word文件修复窍门'/><author><name>阿宽</name><uri>http://www.blogger.com/profile/06808413516472977706</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9217114.post-6599106990362886410</id><published>2009-04-28T10:30:00.004+08:00</published><updated>2009-04-28T10:36:44.979+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='乱码、文档、DocRepair、修复'/><title type='text'>文档乱码不用怕 能修复乱码的DocRepair来帮忙</title><content type='html'>&lt;table style="table-layout: fixed; width: 1258px; height: 1615px;"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;div class="cnt" id="blog_text"&gt; &lt;p&gt; &lt;table&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="ct"&gt; &lt;p align="center"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr align="center"&gt; &lt;td class="c"&gt; &lt;p&gt;作者：王志军     文章来源：电脑迷        更新时间：2006-10-10&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;div class="faq_content_body"&gt; &lt;table style="width: 609px; height: 1560px;"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;p&gt;相信绝大多数朋友都是选择Microsoft  Word作为办公软件，而最痛苦的事应该就是正准备编辑的Word文档遭遇了乱码，这个乱码非常可恶，如果事先没有备份，那可能将不得不重新创建这份文档，而这就不是一件简单的事情了…别着急，遇到这种情况，不妨先试一试本文介绍的DocRepair，这是一款非常专业的Microsoft  Word文档修复软件，特别对于那些包含乱码的Word文档有着出色的修复功能。DocRepair的操作非常简单，安装完成后只需要四个步骤：&lt;/p&gt; &lt;p&gt;第1步：选择待修复文档&lt;/p&gt; &lt;p&gt;　　首先看到的是软件主窗口（如图1），在这里选择待修复的Word文档，DocRepair支持的Word版本非常丰富，从古老的MS Word  6.0、95/97版本一直到Word XP/2003都提供支持，这下应该就不会担心了吧？&lt;/p&gt;  &lt;p style="text-align: left;"&gt;&lt;img src="http://www.net.cn/service/peixun/UploadFiles_8571/200610/20061010160801746.jpg" border="0" height="300" width="400" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="center"&gt;图1 软件主界面&lt;/p&gt; &lt;p&gt;第2步：修复选项的设置&lt;/p&gt; &lt;p&gt;　　接下来，会进入修复选项设置窗口，这里的设置非常关键，首先还是来研究一番三个选项所代表的含义：&lt;/p&gt; &lt;p&gt;　　①Document Content is in Language Othher Than English：文档内容为非英语&lt;/p&gt; &lt;p&gt;　　如果待修复文档包含了中文字符，即所谓的非英语文档，那么请选择此项，这样才能支持中文的双字节编码，修复完成的文档中才不会出现乱码字符。&lt;br /&gt;&lt;br /&gt;　　②Support Embedded Images Retrieval：支持嵌入图像&lt;/p&gt; &lt;p&gt;　　如果待修复文档中嵌入了图像，那么请选择此项。&lt;/p&gt; &lt;p&gt;　　③Use Salvage Content Retrieval Mode：使用文档优先的修复模式&lt;/p&gt; &lt;p&gt;　　这个选项比较复杂，下面的解释也非常详细，但不太容易明白。其实可以这样来理解：只有在一次修复后效果不佳的情况下，才建议选择该项；这种修复模式几乎可以找回损坏文档中的所有内容，但同时也会包含不需要的垃圾信息(例如已删除的内容)，因此该项不推荐给首次修复时选择。&lt;br /&gt;如果用更简单的话来说，意思就是在首次修复时不要选择这一项，只有在修复不成功时，才建议选择这一项。&lt;/p&gt; &lt;p&gt;　　小提示：如果是首次修复，选择前面两项即可，假如文档中没有图像，那么只需要选择第一个选项。&lt;/p&gt; &lt;p&gt;第3步：修复文档&lt;/p&gt; &lt;p&gt;　　单击“Next”按钮，DocRepair会尝试修复损坏的Word文档，主要包括三个环节，最后单击“OK”按钮，文档中的内容都清楚的显示在这里，没有出现所讨厌的乱码字符，这可太令人开心了（如图2）。&lt;/p&gt;  &lt;p style="text-align: left;"&gt;&lt;img src="http://www.net.cn/service/peixun/UploadFiles_8571/200610/20061010160844534.jpg" border="0" height="300" width="400" /&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;                                                                           图2 修复后效果&lt;/p&gt; &lt;p&gt;　　当然，如果在这个预览窗口中发现未能修复成功，可以单击“Back”按钮返回第二步重新设置，至于具体的选项可以参考前面的介绍。&lt;/p&gt; &lt;p&gt;　　小提示：虽然窗口中提供了Step -1、Step -2、Step  -3、Save等标签页，但可别指望能够通过鼠标直接切换到相应的标签页，还是需要老老实实单击窗口底部的“Back”和“Next”两个按钮才行。&lt;/p&gt; &lt;p&gt;第4步：保存文档&lt;/p&gt; &lt;p&gt;　　如果预览后没有发现什么问题，就可以单击“Next”按钮进入“Save”标签页，在这里指定路径将修复成功的文档另存下来，不用担心这个文档会覆盖源文档，因为文件名的前面会自动添加“Repaired_”的字符。&lt;/p&gt; &lt;p&gt;　　比起著名的OfficeFix，DocRepair的功能无疑要出色的多，这主要是取决于后者对双字节编码字符的支持，这个支持解决了包含中文字符Word文档的修复问题，有这方面需要的朋友不妨一试。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;     &lt;p&gt;用过以后还挺好使的，我是在Recover4all-Professional恢复删除文件后使用的&lt;/p&gt; &lt;p&gt;下载地址：&lt;a href="http://zzidc.onlinedown.net/down/docrepair_setup.zip"&gt;http://zzidc.onlinedown.net/down/docrepair_setup.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;注册 码：JF9K2QDO2G91aC9C1C+B0KZ2W7klphzOx6SchV18naYZeIQjs4YB43Wv8bM1zHYYqarZuFgBk3m2KIphNXoS8RXeYjCJsDG+7IfMGQY6SJIU7bVFAoD6aL9yOU4ipObQYJpcthKnkDAF8Sciwfn35av2DINxM04sj3vyD3oSmVenlE97Y&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9217114-6599106990362886410?l=liuyukuan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liuyu
