﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-JUST DO IT</title><link>http://www.cnitblog.com/JIHONG/</link><description>--不要轻言放弃 否则对不起自己</description><language>zh-cn</language><lastBuildDate>Tue, 05 May 2026 04:48:53 GMT</lastBuildDate><pubDate>Tue, 05 May 2026 04:48:53 GMT</pubDate><ttl>60</ttl><item><title>抬头四十五度仰望天空</title><link>http://www.cnitblog.com/JIHONG/archive/2006/05/20/10833.html</link><dc:creator>jihong</dc:creator><author>jihong</author><pubDate>Sat, 20 May 2006 00:30:00 GMT</pubDate><guid>http://www.cnitblog.com/JIHONG/archive/2006/05/20/10833.html</guid><wfw:comment>http://www.cnitblog.com/JIHONG/comments/10833.html</wfw:comment><comments>http://www.cnitblog.com/JIHONG/archive/2006/05/20/10833.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/JIHONG/comments/commentRss/10833.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/JIHONG/services/trackbacks/10833.html</trackback:ping><description><![CDATA[
		<span style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 仿宋_GB2312">
				<span lang="EN-US">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0">
										<span style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 仿宋_GB2312">
												<font color="#000080">我习惯抬头四十五度仰望天际<span lang="EN-US">,</span>是蓝蓝的天<span lang="EN-US">,</span>白白的云<span lang="EN-US">,</span>像海一样的深<span lang="EN-US">,</span>像诗一样的美<span lang="EN-US">.</span>更或者是神秘<span lang="EN-US">,</span>它从不轻易被人看透。只要它一闹情绪<span lang="EN-US">,</span>便是乌云密布<span lang="EN-US">,</span>雷电交加<span lang="EN-US">,</span>但只要它心情愉悦<span lang="EN-US">,</span>便会出现一座七色的彩虹桥<span lang="EN-US">,</span>美丽极了。<span lang="EN-US"><o:p></o:p></span></font>
										</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0">
										<span style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 仿宋_GB2312">
												<font color="#000080">仰望神秘的天空，似乎能联想到浩瀚的宇宙蕴涵的无限玄机。也许正是如此，当我抬头望天才被那份神秘和生动吸引、震撼、感动。又或者当我仰望天空时，心中的不悦也荡然无存，而是心旷神怡，令我的心情平静下来去好好反省自己。更或者一相情愿地以为死后的亲人朋友会在天上看着我们，抬着头仰望天空，是可以看到他们。而在夜空，我们更能看到无数的星星，那更是令人吸引和震撼。更有甚者认为星星就是自己的守护神，每个人都会有那么一颗，但却没有多少人能分得清哪颗是自己的。<span lang="EN-US"><o:p></o:p></span></font>
										</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0">
										<span style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 仿宋_GB2312">
												<font color="#000080">仰望天空，它能带给你一种心情。没有复杂喧哗，没有阴谋诡计，只有简单透明，干干净净。带给无比的宁静，让我们把自己想要的答案看得清清楚楚。一朵朵飘动的白云不都是发生在我们身边的问题吗？而仰望天空却使我们看得更清楚！<span lang="EN-US"><o:p></o:p></span></font>
										</span>
								</p>
								<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0">
										<span style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 仿宋_GB2312">
												<font color="#000080">我就喜欢抬着头四十五度仰望天空，就像一个人的爱好一样，有人喜欢在闹市中想问题，有人喜欢靠音乐想问题，而我喜欢仰头四十五度看天空想问题。这样我会看得更清楚明白，它让我的心情变的平静，让我清清楚楚地想好每一个问题，解决问题，所以我喜欢抬头四十五度看天空。<span lang="EN-US"><o:p></o:p></span></font>
										</span>
								</p>
						</o:p>
				</span>
		</span>
<img src ="http://www.cnitblog.com/JIHONG/aggbug/10833.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/JIHONG/" target="_blank">jihong</a> 2006-05-20 08:30 <a href="http://www.cnitblog.com/JIHONG/archive/2006/05/20/10833.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VB编程规范</title><link>http://www.cnitblog.com/JIHONG/archive/2006/05/17/10675.html</link><dc:creator>jihong</dc:creator><author>jihong</author><pubDate>Wed, 17 May 2006 14:58:00 GMT</pubDate><guid>http://www.cnitblog.com/JIHONG/archive/2006/05/17/10675.html</guid><wfw:comment>http://www.cnitblog.com/JIHONG/comments/10675.html</wfw:comment><comments>http://www.cnitblog.com/JIHONG/archive/2006/05/17/10675.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/JIHONG/comments/commentRss/10675.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/JIHONG/services/trackbacks/10675.html</trackback:ping><description><![CDATA[VB编程规范<br /><br />1. 开发人员操作规程<br />1.1  VB选项参数的定义：<br />选项能数的规范有两方面的意义：一方面是及时排除程序中存在的拼写错误、语法错误，及时保存程序的修改；另一方面是将所有开发人员的开发界面一致化，以避免开发人员在其它开发人员的电脑上工作时因选项不同而造成的差错。<br />1)        打开“工具”菜单，在第一页“编辑器”中选定所有选项，并在Tab宽度中输入4。代码缩进时，先选中要缩进的代码块，然后使用快捷键是Tab（右移）和Shift+Tab（左移）；如果手工输入空格完成缩进，请以4个空格为单位。 <br />2)        在第二页“编辑器格式”中，不要修改任何选项，一律使用VB默认值，否则可能在其他人操作时因界面不一致，而产生操作失误。 <br />3)        在第三页“通用”中，清除“请求时编译”前的复选框（此时“后台编译”选项会变成灰色），以确保每次程序执行时都是全编译执行。 <br />4)        第四页“可连接的”，可按自己习惯设定，建议清除所有复选框，这样会编辑代码时代码窗口可获得最大的显示空间。 <br />5)        第五页“环境”中“启动程序时”中一定选择“提示保存改变”（第二项），这样每次程序被修改后再运行时，VB都会提示保存，避免对程序的修改因偶然因素而丢失。 <br />6)        第六页“高级”中各选项由开发人员按自己习惯定义，但要注意当使用SDI方式进行开发时，每次在设计环境中用鼠标拖动窗体都会导致窗体的StartUpPosition变为0-手动，原来在屏幕上居中（StartUpPosition为2-屏幕中心）的窗体运行时可能会改变位置。 <br />1.2 快捷键的使用<br />使用快捷键提高操作速度。<br />F1        帮助<br />F2        显示对象浏览器<br />F4        查看当前选中控件的属性窗体<br />F5        运行<br />F7        由窗体设计切换到对应的代码窗体<br />F8        单步执行<br />Shift+F2        查看当前光标所在的变量或函数、子过程的定义<br />Shift+F7        由代码窗体切换到对应的窗体设计界面<br />Shift+F8        逐过程单步执行<br />Ctrl+F5        全编译执行<br />Ctrl+F        在代码窗体进行查找<br />Ctrl+G        查看立即窗体<br />Ctrl+R        查看工程窗口<br />　<br />2. 设计模块和过程<br />2.1 建具有很强内聚力的模块<br />过程的重要性往往比模块的重要性更容易理解，过程是指执行一个统一函数的一段代码。模块常被错误的视为是一个仅仅用于存放过程的容器。有些开发人员甚至把这种思路作了进一步的发挥，将他们的所有过程放入单个模块之中。<br />之所以不能正确的认识模块的功能，原因之一是模块的实现实际上并不影响程序的执行。当一个工程被编译时，如果所有过程都放在单个模块中或者放在几十个模块中，这没有任何关系。虽然模块的数量对代码的执行并无太大的影响，但是当创建便于调试和维护的代码时，模块的数量有时会带来很大的影响。<br />模块应该用来将相关的过程组织在一起。<br />当模块包含一组紧密关联的过程时，该模块可以说具有强大的内聚力。当模块包含许多互不相关的过程时，该模块便具有较弱的内聚力。应该努力创建内聚力比较强的模块。<br />大多数工程都包含许多并不十分适合与其他过程组合在一起的过程。在这种情况下，可以为这些不合群的过程创建一个综合性收容模块。<br />创建模块时，应知道“模块化”这个术语的含义是什么。模块的基本目的是创建相当独立的程序单元。从根本上来讲，模块可以添加给另一个工程，并且可以通过直接调用它的公用过程来使用它。<br />2.2 创建松散连接和高度专用的过程<br />1. 使所有过程都执行专门的任务 <br />每个过程都应执行一项特定的任务，它应出色的完成这项任务。应避免创建执行许多不同任务的过程。<br />创建专用过程有许多好处。首先调试将变得更加容易。<br />2. 尽量使过程成为自成一体的独立过程 <br />当一个过程依赖于其他过程的调用时，称为与其他过程紧密连接的过程。紧密连接的过程会使调试和修改变得比较困难，因为它牵涉到更多的因素。松散连接的过程优于紧密连接的过程，但你不可能使每个过程都成为独立的过程。<br />若要使过程具备较强的独立性，方法之一是尽量减少全局变量和模块级变量。<br />创建过程时，设法将每个过程视为一个黑箱，其他例程不应要求了解该过程的内部工作情况，该过程也不应要求了解它外面的工程情况。这就是为什么你的过程应依靠参数而不应依靠全局变量的原因。<br />创建专用过程时，请考虑下列指导原则：<br />1)        将复杂进程放入专用过程。如果应用程序使用复杂的数学公式，请考虑将每个公式放入它自己的过程中。这样使用这些公式的其他过程就不包含用于该公式的实际代码。这样也可以更容易发现与公式相关的问题。 <br />2)        将数据输入/输出（I/O）放入专用过程。 <br />3)        将专用过程中可能要修改的代码隔离。如果你知道某个进程经常变更，请将这个多变的代码放入专用过程，以便以后可以更容易的进行修改，并减少无意中给其他进程带来问题的可能性。 <br />4)        将业务规则封装在专用过程中。业务规则常属于要修改的代码类别，应与应用程序的其余部分隔开。其他过程不应知道业务规则，只有要调用的过程才使用这些规则。 <br />3. 设计模块和过程时，要达到下列目的： <br />1)        创建更加容易调试和维护的过程<br />2)        创建具有强大内聚力的模块<br />3)        创建高度专用的过程<br />4)        创建松散连接的过程<br />5)        尽量使过程具有独立性<br />6)        提高过程的扇入性<br />7)        降低过程的扇出性<br />2.3 编程原则：<br />1. 为过程和模块赋予表义性强的名字 <br />为了使代码更加容易理解，最容易的方法之一是为你的过程赋予表义性强的名字。函数名DoIt、GetIt的可读性很难与CalculateSalesTax、 RetrieveUserID相比。<br />由缩写过程名组成的代码很难理解和维护，没有理由再这样做了。<br />给过程正确的命名，可使程序工程的调试和维护工作大大的改观。请认真对待过程命名的工作，不要为了减少键入操作量而降低过程的可理解度。<br />实际应用举例：<br />1)        给过程命名时应大小写字母混合使用。如果句子全使用大写字母，那么阅读起来就非常困难，而大小写字母混合使用的句子，阅读起来就很容易。 <br />2)        定义过程名时不要使用缩写。如果你认为应用程序中的某些工程应使用缩写，那么请将这些情况加上注释，并确保每个人在所有时间内都使用这些缩写。决不要在某些过程中对某些单词进行缩写，而在别的过程中却不使用缩写。 <br />2. 为每个过程赋予单个退出点 <br />3. 创建过程时，始终都应显式地定义它的作用域。 <br />1)        VB使用Public作为默认作用域。如果你真的想创建一个公用过程，请向代码阅读者说明这一点。<br />2)        通过为每个过程赋予一个明确定义的作用域，可以减少代码阅读者需要投入的工作量。应确保你为过程赋予最有意义的作用域。如果一个过程只被同一模块中的另一个过程调用，那么请将它创建成专用过程。如果该过程是从多个模块中的多个过程中调用，请将该说明为公用过程。<br />3)        每个过程都应以Public、Private或Friend开头。<br />4. 用参数在过程之间传递数据 <br />应尽量避免使用模块级变量。一般来说，变量的作用域越小越好。为了减少模块级变量和全局变量，方法之一是将数据作为参数在不同过程之间传递，而不是让过程共享模块级变量或全局变量。<br />1)        为每个参数指定数据类型。 <br />2)        根据情况传递ByVal或ByRef。给每个参数冠以ByVal或ByRef所需要的规则是非常重要的 <br />3)        始终要对数进行检验，决不要假设你得数据没有问题。程序员常犯的一个错误是在编写过程时假设数据没有问题。在初始编程阶段，当编写调用过程时，这样的假设并无大碍。这时你完全能够知道什么是参数的许可值，并按要求提供这些值。但如果你不对参数的数据进行检验，那么下列情况就会给你带来很大麻烦：另外某个人创建了一个调用过程，但此人不知道允许的值；你在晚些时候添加了新的调用过程，并错误的传递了坏数据。 <br />4)        当参数只接受较小的一组值时，请使用枚举值。使用枚举值，可降低编码时出现数据输入错误的可能性。只要有可能，就可考虑使用枚举值。 <br />3. 命名约定<br />所有变量的定义应该遵循匈牙利命名法，它使用3字符前缀来表示数据类型和控件类型，3个字符的前缀必须小写，前缀后面是由表意性强的一个单词或多个单词组成的名字，而且每个单词的首写字母大写，其它字母小写，这样保证了对变量名能够进行正确的断句。<br />这样，在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容，这使得代码语句可读性强、更加容易理解。<br />3.1 变量类型前缀列表：<br />数据类型        前缀        示例<br />Boolean        bln        BlnLoggedIn<br />Currency        cur        curSalary<br />Control        ctl        ctlLastControl<br />Double        dbl        dblMiles<br />ErrObject        err        errLastError<br />Single        sng        sngYears<br />Handle        hwnd        hwndPicture<br />Long        lng        lngOnHand<br />Object        obj        objUserTable<br />Integer        int        intAge<br />String        str        strName<br />User-defined type        udt        udtEmployee<br />Variant (including Dates)        vnt        vntDateHired<br />Array        a        astrEmployees<br />3.2 控件类型前缀列表：<br />控件        前缀        举例<br />Check        chk        chkPrint<br />Combo        cbo        cboTitle<br />Command        cmd        cmdCancel<br />Data        dat        datBiblio<br />Directory list box        dir        dirSource<br />Drive list box        drv        drvTarget<br />File list box        fil        filSource<br />Frame        fra        fraLanguage<br />Form        frm        frmMain<br />Group push button        gpb        gpbChannel<br />Horizontal scroll bar        hsb        hsbVolume<br />Image        img        imgIcon<br />Label        lbl        lblHelpMessage<br />Line        lin        linVertical<br />List box        lst        lstResultCodes<br />MDI child form        mdi        mdiContact<br />Menu        mnu        mnuFileOpen<br />OLE container        ole        olePhoto<br />Option button        opt        optSpanish<br />Panel        pnl        pnlSettings<br />Picture box        pic        PicDiskSpace<br />Picture clip        clp        ClpToolbar<br />Shape        shp        ShpCircle<br />Text box        txt        TxtAddress<br />Timer        tmr        TmrAlarm<br />Vertical scroll bar        vsb        VsbRate<br />3.3 结构<br />当用户定义UDT（即用户自定义结构，Type结构）时，它应加上前缀“Type＿”，以示与其它类型的区别。<br />3.4 其它<br />开发人员如果遇到上述表格中未列举的类型，请书面通知相关管理人员，由管理人员集中更新列表内容，不得擅自启用未经确定的新变量或控件前缀。<br />4. 使用常量和枚举值<br />4.1 使用常量<br />1) 常数很容易在数据输入时出错 <br />常数存在的主要问题之一是你很容易在键入数字时出错，从而颠倒了数字的位置。例如，当你键入数字10876时，很容易的键入10867或18076。与处理变量和保留字的方法不同，vb的编译器并不在乎颠倒了位置和不正确的数字，有时简单的错误造成的问题不会立即表现出来，而当问题表现出来时，它们会以随机的计算错误的形式出现，这些错误很难准确定位。用常量来取代常数时，vb将在编译时检查常量的有效性。如果常量不存在，vb便将这一情况通知你，并拒绝进行编译，这可以消除错误键入的数字带来的问题，只要常量拥有正确的值，使用该常量的所有代码也有使用该正确值。<br />2) 常数很难不断更新<br />3) 常量使代码更容易阅读<br />使用常量后，得到的一个额外好处是可使创建的代码更容易阅读。常数很不直观。也许你对常数非常了解，但其他人则根本看不明白。通过合理的给常量命名，使用这些常量的代码就变得比较直观了，更容易阅读。<br />为常量赋予较宽的作用域，这与使用变量时的情况不同。在一个应用程序中你决不应该两次创建相同的常量。如果你发现自己复制了一个常量，请将原始的常量说明转至较宽的作用域，直到该常量可供引用它的所有过程为止。<br /><br />4.2 使用枚举值<br />你不必记住参数的数值，错误地设定值的可能性也大大减少了。虽然你仍可为参数设定数值，而不是设定枚举成员的名字，但你决不应该这样去做。<br />1)        枚举值的所有成员都是长整型数，你不得使用其他数据类型。 <br />2)        使用常量和枚举值的目的： <br />减少数字换位和键入错误带来的代码错误；<br />将来可以更容易更改各个值；<br />使代码更容易阅读。<br /><br />4.3 编程原则<br />常量不同于变量的另一个标识特征是不使用数据类型前缀。<br />有些外部数据库仍然使用大写字母常量。例如，如果用 API浏览器查找和拷贝与API相关的常量，你常可看到它们是使用大写字母的常量。在这种情况下，请将这些常量保持原状，以便达成应用程序之间的一致性。<br /><br />1)        将应用程序前缀或特定的前缀用于枚举成员 <br />i.        不必用前缀来表示枚举成员的类型，因为所有成员总是属于长整型数。但应该使用专门的前缀来表示它的值来自应用程序或组件。<br />ii.        应该用一个指示符作为枚举成员的前缀，因为当vb遇到一个枚举成员名时，如果其他被引用的类型库中包含相同的名字，它就会搞混。<br />2)        若要了解键入的系统常量是否正确，方法之一是全部用小写字母键入该常量。如果该常量有效，vb就会将它转换成正确的大小写字母。如果该常量仍然保持全部为小写字母，就表示键入的名字不正确，必须进行纠正。 <br />3)        当参数接受有限数量的值时，请使用枚举 <br />4)        使用Select Case结构时，始终要加上一个Else子句，以便处理传递给过程的有效值。 <br />5. 变量<br />5.1 定义有焦点的变量<br />用于多个目的的变量称为无焦点（多焦点）的变量。无焦点变量所代表的意义与程序的执行流程有关，当程序处于不同位置时，它所表示的意义是不固定的，这样就给程序的可读性和可维护性带来了麻烦。<br />比如：定义一个名为rs的RecordSet变量，先用这个变量取得了医院员工数据，之后又用同一个变量名取得了住院病人数据，那么单独抽取出一句使用了变量rs的语句，如果只凭这一句、不从头读起的话，很知道这句话究竟使用的是哪个表的数据。这给程序的维护带来了不必要的麻烦。<br />5.2 只对常用变量名和长变量名进行缩写<br />如果需要对变量名进行缩写时，一定要注意整个代码中缩写规则的一致性。例如，如果在代码的某些区域中使用Cnt，而在另一些区域中又使用Count，就会给代码增加不必要的复杂性。<br />变量名中尽量不要出现缩写。<br />5.3 使用统一的量词<br />通过在结尾处放置一个量词，就可创建更加统一的变量，它们更容易理解，也更容易搜索。例如，请使用strCustomerFirst和strCustomerLast，而不要使用strFirstCustomer和strLastCustomer。<br />量词列表：<br />量词后缀        说明<br />First        一组变量中的第一个<br />Last        一组变量中的最后一个<br />Next        一组变量中的下一个变量<br />Prev        一组变量中的上一个<br />Cur        一组变量中的当前变量<br />5.4 使用肯定形式的布尔变量<br />给布尔变量命名时，始终都要使用变量的肯定形式，以减少其它开发人员在理解布尔变量所代表的意义时的难度。<br />5.5 为每个变量选择最佳的数据类型<br />这样即能减少对内存的需求量，加快代码的执行速度，又会降低出错的可能性。用于变量的数据类型可能会影响该变量进行计算所产生的结果。在这种情况下，vb不会产生运行期错误，它只是迫使该值符合数据类型的要求。这类问题极难查找。<br />例如：对可能会出现浮点数的变量，定义为整形或长整形会导致VB在运算时将该变量的值自动取整，这种VB自动进行、隐式的的操作会增大程序排错时的难度。<br />5.6 只有在绝对必要时才使用Variant数据类型<br />Variant还存在其他缺陷。它们占用的内存比VB的任何其他数据类型都要多，而且对Variant中的数据进行操作时的速度几乎总是比对其他数据类型进行操作的速度要慢，另外变体类型还可能导致VB在程序运行过程中对数据类型进行自动转换。<br />只有在确实不能预料变量的类型时才能使用Variant。<br />注意：当你使用单个As﹤type﹥子句在同一个代码行上说明多个变量时，只有Dim语句中的最后一个变量被赋予特定数据类型。所有其他变量均被赋予Variant数据类型。<br />5.7 尽量缩小变量的作用域<br />如果变量的作用域大于它应有的范围，变量可继续存在，并且在不再需要该变量后的很长时间内仍然占用资源。<br />它们的主要问题是，任何模块中的任何过程都能对它们进行修改，并且很难跟踪究竟是何处进行修改的。<br />占用资源是作用域涉及的一个重要问题。如果创建全局的Recordset（记录集）变量，问题会复杂。对于Recordset<br />对变量来说，尽量缩小作用域将会对应用程序的可靠性产生巨大的影响。<br />5.8 使用“&amp;”字符对字符串进行并置操作<br />“&amp;”字符能清楚的传达函数的意图，消除阅读者可能存在的疑点，使阅读者清楚地理解目前的操作是加法、还是字符串连接，并且不会因为类型的强制转换而产生不正确的结果。<br />6. 代码的格式化<br />6.1 对代码进行格式化时，要达到的目的包括： <br />1)        通过代码分割成功能块和便于理解的代码段，使代码更容易阅读和理解；<br />2)        使用空行和注释行，将程序中逻辑上不相关的代码块分开。比如：变量声明部分和代码语句间的分隔；较长的过程中，完成不同功能的代码块间的分隔。要避免出现逻辑上混乱的分隔，如：某一逻辑功能代码块中间用空行进行了分隔，但是在相邻功能代码块之间却没有分隔，这样会给程序阅读者造成错觉。<br />3)        减少为理解代码结构而需要做的工作；<br />4)        使代码的阅读者不必进行假设；<br />5)        使代码结构尽可能做到格式清楚明了。<br />6.2 编程原则： <br />1）        要将多个语句放在同一行上 <br />不论是变量声明，还是语句都不要在一行上书写多个。<br />2）        用行接续符 <br />对较长语句，如API声明等，在代码窗体可视范围内给予换行，不要使别人必须通过滚动窗口才能查看到完整的代码。注意，当处理长字符串时，要使用 <br />"字符串1" &amp; _<br />"字符串2" <br />的格式。<br />3）        缩进后续行 <br />当你将变量设置为某个值时，所有后续行的缩进位置应与第一行的变量值相同；<br />当你调用一个过程时，后续行缩进到第一个参数的开始处；<br />当你将变量或属性设置为等于表达式的计算结果时，请从后面分割该语句，以确保该表达式尽可能放在同一行上。<br />4）        在If语句后缩进； <br />在Else语句后缩进<br />在Select Case语句后缩进<br />在Case语句后缩进<br />在Do语句后缩进<br />已经用行接续符分割的语句的各个行要缩进<br />在With语句后缩进。<br />对从属于行标注的代码进行缩进。<br />5）        在执行统一任务的各个语句组之间插入一个空行。好的代码应由按逻辑顺序排列的进程或相关语句组构成。 <br />7. 代码的注释<br />7.1 使用代码注释的目的:<br />1）        文字说明代码的作用(即为什么要用编写该代码,而不是如何编写); <br />2）        确指出该代码的编写思路和逻辑方法; <br />3）        人们注意到代码中的重要转折点; <br />4）使代码的阅读者不必在他们的头脑中仿真运行代码的执行过程. <br />7.2 编程原则:<br />1. 用文字说明代码的作用:<br />简单的重复代码做写什么,这样的注释几乎不能给注释增加什么信息.如果你使用好的命名方法来创建直观明了的代码那么这些类型的注释绝对增加不了什么信息.<br />2. 如果你想违背好的编程原则,请说明为什么<br />有的时候你可能需要违背好的编程原则，或者使用了某些不正规的方法，.遇到这种情况时,请用内部注释来说明你在做什么和为什么要这样做。<br />技巧性特别高的代码段，一定要加详细的注释，不要让其他开发人员花很长时间来研究一个高技巧但不易理解的程序段。<br />3. 用注释来说明何时可能出错和为什么出错<br />4. 在编写代码前进行注释<br />给代码加注释的方法之一是在编写一个过程前首先写上注释.如果你愿意,可以编写完整句子的注释或伪代码.一旦你用注释对代码进行了概述,就可以在注释之间编写代码.<br />5. 在要注释的代码前书写注释<br />注释一定出现在要注释的程序段前，不要在某段程序后书写对这段程序的注释，先看到注释对程序的理解会有一定帮助。<br />如果有可能，请在注释行与上面代码间加一空行。<br />6. 纯色字符注释行只用于主要注释<br />注释中要分隔时，请使用一行空注释行来完成，不要使用纯色字符，以保持版面的整洁、清晰。<br />7. 避免形成注释框<br />用星号围成的注释框，右边的星号看起来很好,但它们给注释增加了任何信息吗?实际上这会给编写或编辑注释的人增加许多工作。<br />8. 使用撇号来指明注释<br />不要使用Rem语句来注释。<br />9. 增强注释的可读性<br />注释是供人阅读的，而不是让计算机阅读的。<br />1)        使用完整的语句。虽然不必将注释分成段落（最好也不要分成段落），但你应尽量将注释写成完整的句子。 <br />2)        避免使用缩写。缩写常使注释更难阅读，人们常用不同的方法对相同的单词进行缩写，这会造成许多混乱，如果必须对词汇缩写，必须做到统一。 <br />3)        将整个单词大写，以突出它们的重要性。若要使人们注意注释中的一个或多个单词，请全部使用大写字母。 <br />10. 对注释进行缩进，使之与后随的语句对齐。<br />注释通常位于它们要说明的代码的前面。为了从视觉上突出注释与它的代码之间的关系，请将注释缩进，使之与代码处于同一个层次上。<br />11. 为每个过程赋予一个注释标头<br />每个过程都应有一个注释标头。过程的注释标头可包含多个文字项，比如输入参数、返回值、原始作者、最后编辑该过程的程序员、上次修改日期、版权信息。<br />12. 当行尾注释用在上面这种代码段结构中时，它们会使代码更难阅读。<br />使用多个行尾注释时（比如用于过程顶部的多个变量说明），应使它们互相对齐。这可使它们稍容易阅读一些。<br />13. 何时书写注释<br />1)        请在每个If语句的前面加上注释。 <br />2)        在每个Select Case语句的前面加上注释。与If语句一样，Select Case语句用于评估对程序执行产生影响的表达式。 <br />3)        在每个循环（包括For…Next循环和Do循环）的前面加上注释。每个循环都有它的作用，许多情况下这个作用不清楚直观。 <br />4)        在修改了全局变量的每个语句前面加上注释。全局变量很讨厌。但如果非常需要使用全局变量，请说明你为何要修改它。这将使代码的调试容易一些。 <br />8. 循环结构<br />1. 循环结束后不要引用计数器变量。当For…Next循环结束时，计数器变量的最后值不等于end的值，它大于或小于Step的值。 <br />2. 所有Next语句均应包含计数器变量。如果你在Next语句中省略了计数器变量，代码仍可执行，但它的可读性要差一些，因此更难维护. <br />3. 为了清楚起见，应对For…Next循环中的代码主体语句进行缩进。每当你的代码结构拥有一个开始语句和结束语句时，就必须对代码主体语句进行缩进。 <br />4. 如果你必须提早退出For…Next循环，请使用Exit For语句。不要使用GoTo和一个标注来退出循环。 <br />5. 请在循环的开始处计Do循环的退出条件。你常可选择究竟在循环的开始处还是结尾处放置退出条件。但在循环的开始处计算退出条件，这样的循环比较容易理解。 <br />6. 当你在While和Until之间进行选择时，请使用能实现最简单的条件的这个关键字。 <br />7. 为了保持代码见格的一致性，尽可能使用While子句来完成Do.Loop循环。<br />　<br />9. 控制代码流<br />9.1 控制代码流的目的：<br />1)        在规定的情况下使用正确的判断构造； <br />2)        降低代码的复杂性，使之更容易阅读和调试； <br />3)        最大限度的减少表达式计算中出错的机会。 <br />9.2 编程原则：<br />1. 当根据一个条件是True还是False来做出判断时，使用If…Then…Else <br />即使只有一个语句被执行，也应考虑使用End If构造。当condition的计算结果是True时，如果只有一个语句被执行，该语句可以与If放在同一行上，并且End If可以省略。但若要使代码更便于阅读，请将该语句单独放在一行上，并以End If作为该构造的结束。<br />2. 对非布尔表达式与各种可能的值进行比较时，使用Select Case语句. <br />Select Case可以用许多高档次的方式来使用，比如将多个结果值放在一个Case行上。<br />这些条件互相之间可能毫不相关。这与Select Case结构完全相反。在Select Case结构中，通过对一个（通常是非布尔）测试表达式与Case语句中的每个表达式进行比较，从而构成了各个条件。<br />1)        即使不需要，也应在每个Select Case构造中包含Case Else语句。如果始终都加上Case Else子句，代码将更加清楚明了，就不会迫使其他编程人员去猜测为什么要处理Case语句中的没有特殊理由的结果。 <br />2)        所有Case语句都应使用便于理解的顺序。 <br />不能出现条件范围大的Case子句出现在前面情况。<br />如：Select Case lngAge<br />Case is &lt;17<br />Case is &lt;13<br />...<br />End Select<br />这样的结构导致第二个Case子句不能被执行，从而产生逻辑上的错误。<br />3)        不要编写决不会产生True结果的Case语句。 <br />3. 对表达式进行格式化 <br />对表达式进行正确的格式化可以减少代码出错的可能性，增加代码的可读性。<br />1) 要将布尔表达式与True或False相比较。 <br />如：<br />错误：If rsEmployees.Eof = True then<br />正确：If rsEmployees.Eof then<br />布尔表达式与True或False相比较在Select Case 子句中更容易产生错误。<br />2) 建的布尔变量名应反映肯定的条件而不是否定的条件。使过程变得过分复杂的一个典型例子是创建一个反映否定条件的布尔变量名。根据这种变量进行判断，就会使代码变得更加复杂。代码就增加了出错的可能性。 <br />3) 了清楚起见，用括号将表达式括起来。即使不要求，也要使用括号。不要书写复杂的依靠运算符优先级来执行的表达式，在必要的位置使用括号强调其运算优先级。 <br />4) oTo标识全部使用大写字母。GoTo语句使得代码很难阅读。通过将GoTo标识全部使用大写字母，就可以减少查找过程的GoTo标识所需的工作量。 <br /><br />10. 创建对象和工程模板<br />如果要创建许多个项目，那么通过创建和使用对象和项目模板，就可以节省大量的开发时间，并增强应用程序的一致性。<br />10.1 使用对象模板 <br />例如，假设创建了一个窗体对象，并希望在每次从Project菜单中选择Add Form（添加窗体）时使该窗体对象出现在Add Form对话框中，只需将窗体文件的拷贝放入Template文件夹的Forms子文件夹中。如果窗体拥有一个与其相关联的二进制文件（即.frx文件），该文件也必须放入Forms子文件夹中。若不希望对象出现在模板中，就从Template文件夹的相应子文件夹中删除或移走该对象的文件。<br />当模板对象被添加给一个项目时，便创建该对象的一个新实例，对该对象所作的修改并不传给模板本身。<br />10.2 设置模板文件夹 <br />将项目中的所有对象模板放入这个自定义模板文件夹中，并让所有开发人员将新文件夹的路径输入他们的Template Directory文本框。<br />10.3 使用对象和项目模板的目的： <br />1)        代码的复用 <br />2)        缩短新项目和现有项目的开发时间 <br />10.4 编程原则： <br />1) 不要将对象模板中的特定应用程序的值或特定组件的值进行硬编码。 <br />对象模板应该尽可能做到通用。<br />注意：在对象模板中用常量取代硬编码的“幻数”，这个问题很重要，这样开发人员就能更容易理解和替换各个值。<br />2) 不要将对象模板中的路径进行硬编码。不同的应用程序和不同的安装，其路径也不一样。就象不应该对任何对象中的路径进行硬编码一样，也不应该将对象模板中的路径进行硬编码。 <br />3) 不要将对象模板中的应用程序进行硬编码。 <br />4) 不要将对象模板中的版本号进行硬编码。 <br />5) 展示模板对象的属性，以便接受来自主应用程序的数据。不要展示公用变量或使用全局变量，而应该使用Property 过程。如果使用Property过程，那么当值变更时，就能进行数据验证并执行代码。 <br />10.5 在对象模板中提供内容广泛的注释。 <br />将模板对象添加给项目时，不对它进行修改，这种情况是很少的。应该尽可能使开发人员将模板对象添加给项目时能够非常容易得了解必须在何处进行哪些修改，才能将对象与项目集成起来。要做到这一点的方法之一是使用统一的方法来加上注释，以便说明所做的必要修改，并将这个说明记录在程序模块的Declaration（说明）部分中。这样，开发人员就能非常容易的搜索注释，并进行必要的修改。<img src ="http://www.cnitblog.com/JIHONG/aggbug/10675.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/JIHONG/" target="_blank">jihong</a> 2006-05-17 22:58 <a href="http://www.cnitblog.com/JIHONG/archive/2006/05/17/10675.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>大学四年你所需要面对的真理</title><link>http://www.cnitblog.com/JIHONG/archive/2006/05/17/10674.html</link><dc:creator>jihong</dc:creator><author>jihong</author><pubDate>Wed, 17 May 2006 14:38:00 GMT</pubDate><guid>http://www.cnitblog.com/JIHONG/archive/2006/05/17/10674.html</guid><wfw:comment>http://www.cnitblog.com/JIHONG/comments/10674.html</wfw:comment><comments>http://www.cnitblog.com/JIHONG/archive/2006/05/17/10674.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/JIHONG/comments/commentRss/10674.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/JIHONG/services/trackbacks/10674.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 大学四年你所需要面对的真理																								一，别以为在学生会你能得到你曾经想要的。工作的热情很可能因为你所看到的所经历的																		一些事而改变，但是也不必惧怕。你有大一一年来适应或者承受，并做出是继续坚持还是																		退出的决定。											...&nbsp;&nbsp;<a href='http://www.cnitblog.com/JIHONG/archive/2006/05/17/10674.html'>阅读全文</a><img src ="http://www.cnitblog.com/JIHONG/aggbug/10674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/JIHONG/" target="_blank">jihong</a> 2006-05-17 22:38 <a href="http://www.cnitblog.com/JIHONG/archive/2006/05/17/10674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows2003全技巧</title><link>http://www.cnitblog.com/JIHONG/archive/2006/05/15/10545.html</link><dc:creator>jihong</dc:creator><author>jihong</author><pubDate>Mon, 15 May 2006 04:41:00 GMT</pubDate><guid>http://www.cnitblog.com/JIHONG/archive/2006/05/15/10545.html</guid><wfw:comment>http://www.cnitblog.com/JIHONG/comments/10545.html</wfw:comment><comments>http://www.cnitblog.com/JIHONG/archive/2006/05/15/10545.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/JIHONG/comments/commentRss/10545.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/JIHONG/services/trackbacks/10545.html</trackback:ping><description><![CDATA[
		<p>【注意】安装WIN2003以后不会设置的朋友请进来！</p>
		<p>一、windows server 2003 3790版本识别  <br />RTM=release to manufacture （公开发行批量生产）是给硬件制造商的版本！是送去压盘的,不是拿去卖的。 <br />OEM=Original Equipment Manufacturer只能全新安装， 和RTM差不多，只（零售）正式零售版,可以升级或者全新安装。 <br />VLK=Volume License大量授权版，又称为企业版。无需激活。(网上所谓的简体中文VLK版实际是普通简体中文版加英文VLK版中的8个文件而已) </p>
		<p>二、Windows Server 2003的不同版本 </p>
		<p>　　Windows Server 2003 Web版:为快速开发、部署Web服务与应用程序，提供Web托管与服务平台。支持2路SMP(对称多处理)系统、2GB内存。 </p>
		<p>　　Windows Server 2003标准版:面向中小型企业和部门级应用。支持4路SMP、4GB内存。 </p>
		<p>　　Windows Server 2003企业版:适合中心与大型组织使用，有32位和64位两个版本。支持8节点集群、NUMA；支持8路SMP，其中32位版支持32GB内存，64位版支持64GB内存。 </p>
		<p>　　Windows Server 2003数据中心版：面向要求强伸缩性和高可用性的企业，有32位和64位两个版本。32位版支持32路SMP、64GB内存；64位版支持64路SMP、512GB内存；两个版本均支持8节点集群、NUMA </p>
		<p>三、windows server 2003 3790版的激活 </p>
		<p>在正式版算号器没有出来之前，现在流行的激活方式有以下几种： <br />（1）Reset5.02，在安全模式下运行即可激活，把时间调整为2008年都没有问题，一切使用正常。可以升级。缺点：激活程序被彻底屏蔽，表现为运行msoobe /a没有任何显示，并且在服务中有一项reset5，开机会自动运行此服务，C:\WINDOWS\system32\srvany.exe，此程序应该是reset5添加入系统的。 </p>
		<p>（2）俄罗斯破解，记得在xp时代，只要把setupreg.hiv在安装前替换，然后电话激活就可以达到完美的激活境界，可在2003下，这样子做之后，当前显示已激活，可如果你调整了时间再开机又会显示要激活，甚至是不能使用。估计次次问题关键还是在那个setupreg.hiv文件。 </p>
		<p>（3）在论坛上有人贴出了一个Winxpactivation.exe的文件，号称可以激活，实际上这个还是假激活，暂时屏蔽了激活程序，是不能够修改时间的。 </p>
		<p>（4）用替换法做出来的伪VLK，安装使用都没有问题，只是不能升级。VLK是替换英文版的8个文件.但是SN已经被微软封掉了.所以不能升级，但是此法是最稳定的，没有任何问题。  </p>
		<p>结论：推荐大家用8个替换法激活和reset5.02激活！ </p>
		<p>
				<br />四、win 2003 server的一些优化设置 </p>
		<p>
				<br />1.禁用配置服务器向导: </p>
		<p>禁止“配置你的服务器”（Manage Your Server）向导的出现：在控制面板（Control Panel） -&gt; 管理员工具（Administrative Tools ）-&gt; 管理你的服务器（Manage Your Server）运行它，然后在窗口的左下角复选“ 登录时不要显示该页”（Don't display this page at logon）。 </p>
		<p>2.启用硬件和DirectX加速 </p>
		<p>★硬件加速：桌面点击右键－－属性（Properties） -&gt; 设置（Settings ）－－高级（ Advanced ）－－疑难解答（Troubleshoot）。把该页面的硬件加速滚动条拉到“完全”（ Full），最好点击“确定”（OK）保存退出。这期间可能出现一瞬的黑屏是完全正常。 </p>
		<p>★DirectX加速：打开“开始”（Start） -&gt; “运行”（Run），键入“dxdiag”并回车打开“DirectX 诊断工具”（DirectX Tools），在“显示”（Display）页面，点击DirectDraw, Direct3D and AGP Texture 加速三个按钮启用加速。把“声音的硬件加速级别”（Hardware Sound Acceleration Level）滚动条拉到“完全加速”（ Full Acceleration）。 </p>
		<p>3. 启用声卡： </p>
		<p>系统安装后，声卡是禁止状态，所以要在 控制面板 -&gt; 声音 -&gt; 启用，重启之后再设置它在任务栏显示。如果你使用的是Windows server 2003标准版请从第二步xx作，因为标准版已允许声音服务。  <br />★打开“开始”（Start） -&gt; “运行”（Run），键入“Services.msc ”，在出现的窗口中找到“Windows Audio”并双击它，然后在启动模式（startup type ）的下拉菜单选择“自动”（Automatic）， 并点击“应用”（Apply） -&gt;“开始”（Start） -&gt; “确定”（OK）  </p>
		<p>★打开“开始”（Start） -&gt; “运行”（Run），键入“dxdiag”并回车打开“DirectX 诊断工具” （DirectX Tools），在“Sound”（Display）页面，把“声音的硬件加速级别” （Hardware Sound Acceleration Level）滚动条拉到“完全加速”（ Full Acceleration）。  </p>
		<p>4. 如何启用 ASP 支持： </p>
		<p>Windows Server 2003 默认安装，是不安装 IIS 6 的，需要另外安装。安装完 IIS 6， 还需要单独开启对于 ASP 的支持。方法是： 控制面板 -&gt; 管理工具 -&gt;  Web服务扩展 -&gt; Active Server Pages -&gt; 允许。 </p>
		<p>5. 如何启用 XP 的桌面主题： </p>
		<p>★打开“开始”（Start） -&gt; “运行”（Run），键入“Services.msc ”，选themes“主题”（默认是禁止的），然后改为“自动”，按“应用”，选“开启”。 <br />★接着点“桌面”的属性，在“主题”里选“windows xp”  <br />★我的电脑----属性----高级----性能-----在桌面上为图标标签使用阴影 </p>
		<p>6. 禁止关机时出现的关机理由选择项： </p>
		<p>关机事件跟踪（Shutdown Event Tracker）也是Windows server 2003区别于其他工作站系统的一个设置，对于服务器来说这是一个必要的选择，但是对于工作站系统却没什么用，我们同样可以禁止它。 打开”开始“Start -&gt;”运行“ Run -&gt;输入”gpedit.msc “，在出现的窗口的左边部分， 选择 ”计算机配置“（Computer Configuration ）-&gt; ”管理模板“（Administrative Templates ） -&gt; ”系统“（System）,在右边窗口双击“Shutdown Event Tracker” 在出现的对话框中选择“禁止” （Disabled），点击然后“确定”（OK）保存后退出，这样，你将看到类似于windows 2000的关机窗口  </p>
		<p>7. 如何使用USB硬盘、U盘，添加已经有分区的硬盘 </p>
		<p>我的电脑（单击右键）----管理----磁盘管理-----在相应的硬盘上执行导入和分配盘符操作 </p>
		<p>8. 在控制面板里显示全部组件：  <br />把 Windows\inf 目录中的 sysoc.inf 文件里的 "hide" 替换掉。 </p>
		<p>9.禁用Internet Explorer Enhanced Security 和禁止安全询问框的出现在IE工具选项中自定义设置IE的安全级别。在”安全“（Security）选项卡上拉动滚动条把Internet区域安全设置为”中“（Medium）或“中低”。自定义设置中将有关的选择“提示”修改为选择“禁止”或“启用”。 </p>
		<p>10. 禁用开机 CTRL+ALT+DEL和实现自动登陆 </p>
		<p>★方法1：打开注册表(运行-&gt;“Regedit”)，再打开: <br />HKEY_LOCAL_MACHIN|SOFTWARE|MicroSoft|Windows NT|CurrentVersion |Winlogon段，在此段中按右键，新建二个字符串段，AutoAdminLogon=“1”，DefaultPassword=“为超级用户Administrator所设置的Password”。注意，一定要为Administrator设置一个密码，否则不能实现自启动。 然后，重新启动Windows即可实现自动登录。 </p>
		<p>★方法2：管理工具 -&gt; Local Security Settings（本地安全策略） -&gt; 本地策略 -&gt; 安全选项 -&gt; interactive logon: Do not require CTRL+ALT+DEL，启用之。 </p>
		<p>★方法3（自动登陆）：使用Windows XP的Tweak UI来实现Server 2003自动登陆。 <br />下载：Tweak UI <br />下载后直接执行tweakui.exe 在左边的面板中选择Logon -&gt; Autologon -&gt; 在右边勾选Log on automatically at system startup输入你的用户名和域名（如果没有就不写），点击下面的Set Password，输入用户名的密码，然后点击OK。 </p>
		<p>11.隐藏文件 </p>
		<p>Windows Server 2003默认情况下是显示所有的文件夹的，如果你不想这样，可以通过一下方法来隐藏：打开任意一个文件夹，选择工具（Tools） -&gt; 文件夹选项（Folder Options） -&gt; 查看（View）， 调整 显示系统文件夹的内容、隐藏受保护的操作系统文件、隐藏文件和文件夹 三项  </p>
		<p>12.允许内置的IMAPI CD-Burning服务和支持Windows影像设备服务 </p>
		<p>.允许内置的IMAPI CD-Burning服务和支持Windows影像设备服务★假如你希望启用Windows内置的IMAPI CD-Burning服务。做如下xx作：打开“开始”（Start） -&gt; “运行”（Run），键入“Services.msc ”，在出现的窗口中找到“IMAPI CD-Burning COM Service ”并双击它，然后在启动模式（startup type ）的下拉菜单选择“自动”（Automatic），并点击“应用”（Apply） -&gt;“开始”（Start） -&gt; “确定”（OK）  </p>
		<p>★假如你有如数码相机和扫描仪之类的影像设备，你应该打开Windows Image Acquisition 服务。打开“开始”（Start） -&gt; “运行”（Run），键入“Services.msc ”，在出现的窗口中找到“Windows Image Acquisition (WIA) ”并双击它，然后在启动模式（startup type ）的下拉 <br />菜单选择“自动”（Automatic），并点击“应用”（Apply） -&gt;“开始”（Start） -&gt; “确定”（OK）  </p>
		<p>13.高级设置 </p>
		<p>★我们可以修改一些windows server 2003的高级设置以适合工作站的应用环境。  <br />右键点击“我的电脑”（My Computer）－－属性（Properties）－－高级（Advanced）－－性能（Performance）－－设置（Setting）－－高级（Advanced），把“处理器计划”（Processor scheduling ）和内存使用（Memory usage）分配给“程序”（Programs）使用。然后点击“确定”（OK.）  </p>
		<p>★禁用错误报告 <br />右键点击“我的电脑”（My Computer）－－属性（Properties）－－高级（Advanced）－－点击“错误报告”（Error Reporting ）按钮，在出现的窗口中把“禁用错误报告”（Disable Error Reporting）选上并复选“ 但在发生严重错误时通知我”</p>
		<p>（But, notify me when critical errors occur.） </p>
		<p>★调整虚拟内存 <br />一些朋友经常会对关机和注销缓慢感到束手无策，解决办法就是禁用虚拟内存，这样你的注销和关机时间可能会加快很多。右键点击“我的电脑”（My Computer）－－属性（Properties）－－高级（Advanced）－－性能（Performance）－－设置（Setting）－－高级（Advanced），点击“虚拟内存”（Virtual memory）部分的“更改”（Change），然后在出现的窗口选择“无分页文件”。重启系统即可。 </p>
		<p>14.加快启动和运行速度 </p>
		<p>★修改注册表，减少预读取，减少进度条等待时间： <br />开始→运行→regedit启动注册表编辑器，HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session<br />Manager\Memory Management\PrefetchParameters， 有一个键值名为EnablePrefetcher，它的值是3,把它改为“1”或“5”。找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control，  将 WaitToKillServiceTimeout 设为：1000或更小。 ( 原设定值：20000  <br />找到 HKEY_CURRENT_USER\Control Panel\Desktop 键，将右边视窗的WaitToKillAppTimeout 改为 1000， ( 原设定值：20000 即关闭程序时仅等待1秒。将 HungAppTimeout 值改为：200( 原设定值：5000 ， 表示程序出错时等待0.5秒。  </p>
		<p>★让系统自动关闭停止回应的程式。  <br />打开注册表 HKEY_CURRENT_USER\Control Panel\Desktop 键，将 AutoEndTasks 值设为 1。 ( 原设定值：0  </p>
		<p>★禁用系统服务Qos <br />开始菜单→运行→键入 gpedit.msc ，出现“组策略”窗口， 展开 "管理模板”→“网络” ， 展开 "QoS 数据包调度程序"， 在右边窗右键单击“限制可保留带宽" ，在属性中的“设置”中有“限制可保留带宽" ，选择“已禁用”，确定即可。当上述修改完成并应用后，用户在网络连接的属性对话框内的一般属性标签栏中如果能够看到"QoS Packet Scheduler（QoS 数据包调度程序）"。说明修改成功，否则说明修改失败。 </p>
		<p>★改变窗口弹出的速度：  <br />找到HKEY_CURRENT_USER＼Control Panel＼Desktop＼WindowMetrics子键分支，在右边的窗口中找到MinAniMate键值，其类型为REG_SZ，默认情况下此健值的值为1，表示打开窗口显示的动画，把它改为0，则禁止动画显示，接下来从开始菜单中选择“注销”命令，激活刚才所作的修改。  </p>
		<p>★禁止Windows XP的压缩功能：  <br />点击“开始”下的“运行”，在“运行”输入框中输入“regsvr32/u zipfldr.dll”，然后按回车键即可。  </p>
		<p>★设置个性的启动信息或警告信息：  <br />个性化的Windows XP启动：打开注册表编辑器，找到HKEY_LOCAL_MACHINE＼SOFTWARE＼Microsoft＼Windows NT＼CurrentVersion＼Winlogon子键分支，双击LegalNoticeCaption健值，打开“编辑字符串”对话框，在“数值数据”下的文本框中输入自己想要的信息标题，如“哥们儿，你好！”，然后点击“确定”，重新启动。如果想要改变警告信息的话可以双击LegalNoticeText健值名称，在出现的“编辑字符串”窗口中输入想要显示的警告信息，单击“确定”，重新启动。 </p>
		<p>15.安装Java VM  <br />Windows server 2003没有集成MS Java VM或Sun Java VM,你可以自行下载并安装它。 </p>
		<p>16.安装DirectX 9a  </p>
		<p>在Windows Server 2003上安装DirectX 9a和在其他版本的Windows上安装DirectX 9a的方法是一样的。安装之前必须先启用DirectX and Graphics Acceleration。  </p>
		<p>17.可用的杀毒软件和防火墙： <br />Symantec Norton Antivirus Corporate 8.01 <br />Zone Alarm 3.7.159 <br />Norton Personal Firewall 2003 </p>
		<p>五、如何防范ipc$入侵 </p>
		<p>1、禁止空连接进行枚举(此操作并不能阻止空连接的建立) </p>
		<p>首先运行regedit，找到如下组建[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把RestrictAnonymous = DWORD的键值改为：00000001。 <br />restrictanonymous REG_DWORD  <br />0x0 缺省 <br />0x1 匿名用户无法列举本机用户列表 <br />0x2 匿名用户无法连接本机IPC$共享 <br />说明:不建议使用2，否则可能会造成你的一些服务无法启动，如SQL Server </p>
		<p>2、禁止默认共享 </p>
		<p>1）察看本地共享资源 <br />运行-cmd-输入net share <br />2）删除共享(每次输入一个） <br />net share ipc$ /delete <br />net share admin$ /delete <br />net share c$ /delete <br />net share d$ /delete（如果有e,f,……可以继续删除） <br />3）修改注册表删除共享 <br />运行-regedit <br />找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareServer（DWORD）的键值改为:00000000。如果上面所说的主键不存在，就新建(右击-新建-双字节值）一个主健再改键值。  </p>
		<p>3、停止server服务 </p>
		<p>1）暂时停止server服务 <br />net stop server /y （重新启动后server服务会重新开启） </p>
		<p>2）永久关闭ipc$和默认共享依赖的服务:lanmanserver即server服务 <br />控制面板-管理工具-服务-找到server服务（右击）-属性-常规-启动类型-已禁用 </p>
		<p>4、安装防火墙(选中相关设置)，或者端口过滤(滤掉139,445等) </p>
		<p>1).解开文件和打印机共享绑定 </p>
		<p>　　鼠标右击桌面上[网络邻居]→[属性]→[本地连接]→[属性]，去掉“Microsoft网络的文件和打印机共享”前面的勾，解开文件和打印机共享绑定。这样就会禁止所有从139和445端口来的请求，别人也就看不到本机的共享了。 </p>
		<p>　　2).利用TCP/IP筛选 </p>
		<p>　　鼠标右击桌面上[网络邻居]→[属性]→[本地连接]→[属性]，打开“本地连接属性”对话框。选择[Internet协议(TCP/IP)]→[属性]→[高级]→[选项]，在列表中单击选中“TCP/IP筛选”选项。单击[属性]按钮，选择“只允许”，再单击[添加]按钮(如图2)，填入除了139和445之外要用到的端口。这样别人使用扫描器对139和445两个端口进行扫描时，将不会有任何回应。 </p>
		<p>　　3).使用IPSec安全策略阻止对端口139和445的访问 </p>
		<p>　　选择[我的电脑]→[控制面板]→[管理工具]→[本地安全策略]→[IP安全策略，在本地机器]，在这里定义一条阻止任何IP地址从TCP139和TCP445端口访问IP地址的IPSec安全策略规则，这样别人使用扫描器扫描时，本机的139和445两个端口也不会给予任何回应。 </p>
		<p>　　4).使用防火墙防范攻击 </p>
		<p>　　在防火墙中也可以设置阻止其他机器使用本机共享。如在“天网个人防火墙”中，选择一条空规则，设置数据包方向为“接收”，对方IP地址选“任何地址”，协议设定为“TCP”，本地端口设置为“139到139”，对方端口设置为“0到0”，设置标志位为“SYN”，动作设置为“拦截”，最后单击[确定]按钮，并在“自定义IP规则”列表中勾选此规则即可启动拦截139端口攻击了(如图3)。 </p>
		<p>5、给所有账户设置复杂密码，防止通过ipc$穷举密码  </p>
		<p>Windows Server 2003技巧七则 </p>
		<p>一、跳过磁盘检修等待时间</p>
		<p>　　一旦计算机因意外原因，例如突然停电或者死机的话，那么计算机下次重新启动的话，系统就会花10秒钟左右的时间，来运行磁盘扫描程序，检查磁盘是否有错误出现。要是你是一位惜时如金的人，肯定不会白白等待下去的。那就跟我一起来，跳过这段检查等待时间吧：</p>
		<p>
				<br />　　1、在开始菜单中，依次执行“程序”/“附件”/“命令提示符”命令，将界面切换到DOS命令行状态下；</p>
		<p>
				<br />　　2、直接输入“CHKNTFS/T :0”命令，单击回车键后，系统就能自动将检查磁盘的等待时间修改为0了；</p>
		<p>
				<br />　　3、下次遇到异常情况，重新启动计算机后，系统再调用磁盘扫描程序时，就不需要等待了。</p>
		<p>
				<br />　　二、取消对网站的安全检查</p>
		<p>
				<br />　　新安装好Windows Server 2003操作系统后，打开浏览器来查询网上信息时，发现IE总是“不厌其烦”地提示我们，是否需要将当前访问的网站添加到自己信任的站点中去；要是不信任的话，就无法打开指定网页；倘若信任的话，就必须单击“添加”按钮，将该网页添加到信任网站的列表中去。不过每次访问网页，都要经过这样的步骤，显然就太烦琐了。其实我们可以通过下面的方法来让IE取消对网站安全性的检查：</p>
		<p>
				<br />　　1、依次执行“开始”/“设置”/“控制面板”命令，在打开的控制面板窗口中，用鼠标双击“添加和删除程序”图标，将界面切换到“添加和删除Windows组件”页面中；</p>
		<p>
				<br />　　2、用鼠标选中“Internet Explorer增强的安全配置”选项，继续单击下一步按钮，就能将该选项从系统中删除了；</p>
		<p>
				<br />　　3、再单击一下“完成”按钮，退出组件删除提示窗口。</p>
		<p>
				<br />　　以后，再上网的时候，IE就不会自动去检查网站的安全性了，这样就能少了不少麻烦。</p>
		<p>
				<br />　　三、自动进入Windows Server 2003系统</p>
		<p>
				<br />　　每次开机运行Windows Server 2003系统时，都需要同时按住Ctrl+Alt+Delete复合键，再输入登录密码，才能进入到系统中；要是需要频繁登录系统的话，大家可能就会受不了这样罗嗦的步骤了。此时，大家不妨按照下面的步骤，来让系统自动完成登录操作：</p>
		<p>
				<br />　　1、在运行对话框中，输入注册表编辑命令regedit，来打开注册表编辑窗口；</p>
		<p>
				<br />　　2、在该窗口中，依次展开HKEY_LOCAL_MACHINES\SOFTWARE\Microsoft\WindowsNT\Current Version\WinLogon键值；</p>
		<p>
				<br />　　3、在对应右边的子窗口中，用鼠标右键单击空白处，从弹出的快捷菜单中，依次执行“新建”/“字符串”命令，来创建一个字符串类型的键名，并将键名设置为“AutoAdminLogon”，并将该键名的数值设置为“1”；</p>
		<p>
				<br />　　4、找到“DefaultDomainName”键名，并用鼠标双击之，在随后出现的窗口中，输入要登录的域名，例如Department；</p>
		<p>
				<br />　　5、双击“DefaultUserName”键名，在随后打开的窗口中，直接输入要登录到此域的用户名，例如“test”；</p>
		<p>
				<br />　　6、在WinLogon右边的子窗口中，用鼠标右键单击空白处，从弹出的快捷菜单中，依次执行“新建”/“字符串”命令，来创建一个字符串类型的键名，并将键名设置为“DefaultPassword”，并将该键名的数值设置为用户登录系统的密码，例如用户test的登录密码为“123456”；</p>
		<p>
				<br />　　7、完成设置后，重新启动计算机时，我们会发现不需要再登录，就能自动进入到Windows Server 2003系统中了。以后要取消自动登录功能的话，可以将“AutoAdminLogon”键值设置为“0”就可以了。</p>
		<p>
				<br />　　四、取消关机原因的提示</p>
		<p>
				<br />　　在关闭Windows Server 2003操作系统时，系统会弹出一个提示窗口，要求大家选择关闭计算机的原因选项；尽管这种方法可以增强系统的安全性，确保用户更有效地管理和维护计算机；不过每次关机或者重新启动系统，都要选择关机原因，实在没有必要。所以，为了进快地关闭计算机，大家可以按下面步骤来取消关机原因的提示：</p>
		<p>
				<br />　　1、打开控制面板窗口，双击“电源选项”图标，在随后出现的电源属性窗口中，进入到“高级”标签页面；</p>
		<p>
				<br />　　2、在该页面的“电源按钮”设置项处，将“在按下计算机电源按钮时”设置为“关机”，单击“确定”按钮，来退出设置框；</p>
		<p>
				<br />　　3、以后需要关机时，可以直接按下电源按键，就能直接关闭计算机了。当然，我们也能启用休眠功能键，来实现快速关机和开机；</p>
		<p>
				<br />　　4、要是系统中没有启用休眠模式的话，可以在控制面板窗口中，打开电源选项，进入到休眠标签页面，并在其中将“启用休眠”选项选中就可以了。</p>
		<p>
				<br />　　五、调用Windows XP风格界面</p>
		<p>
				<br />　　安装完Windows Server 2003系统进入到桌面时，我们会发现系统桌面的显示样式为“Windows经典样式”。看惯了这种样式后，就会感觉到有点乏味，想不想改变一下桌面的显示风格？要是你企图通过显示属性的外观设置中，来调用其他风格界面时，就发现此“路”不通；通过组策略来调用时，发现只有当前样式可以选择。那么我们有没有办法来调用其他风格样式呢，例如Windows XP样式？按照下面方法，我们就能轻松实现调用目的：</p>
		<p>
				<br />　　1、在系统的开始菜单中，依次展开控制面板、管理工具和服务窗口，在对应服务的右边子窗口中，用鼠标选中“Themes”选项；</p>
		<p>
				<br />　　2、仔细查看该选项的参数时，发现该服务在缺省状态下是被禁止使用的，因此我们就无法调用其他风格样式；</p>
		<p>
				<br />　　3、为此，我们必须启动该服务；用鼠标双击该服务选项，然后打开常规标签页，将对应该服务的启动类型设置为“自动”，再点一下“应用”按钮；</p>
		<p>
				<br />　　4、此时，“服务状态”设置项中的“启动”按钮就自动被激活了，单击该“启动”按钮，就能将系统中的Themes服务起用了；</p>
		<p>
				<br />　　5、返回到系统桌面，并用鼠标右键单击空白处，从快捷菜单中执行“属性”命令，再打开外观标签页面，在其中的“窗口和按钮”处，选中Windows XP样式或者其他显示样式。</p>
		<p>
				<br />　　6、至此，系统中的工具栏菜单、窗口等样式就会按照指定的风格来显示了。</p>
		<p>
				<br />　　六、调整Windows Media Player的播放模式</p>
		<p>
				<br />　　要是在使用Windows Media Player播放音乐的同时，我们还打开了多个工作窗口，这样我们就会经常需要在工作窗口和WMP播放界面中来回切换，这样会大大影响工作效率。现在，可以通过下面方法来调整WMP的播放模式，让操作者不需要打开WMP的主界面就能控制音乐的播放，以便不影响其他工作窗口：</p>
		<p>
				<br />　　1、用鼠标右键单击系统任务栏中的空白处，从打开的快捷菜单中，执行“工具栏”下面的“Windows Media Player”命令；</p>
		<p>
				<br />　　2、此后，Windows Media Player界面中的播放按钮就会自动缩小并显示在系统任务栏中了，利用这里的按钮，我们就能执行音乐的播放、暂停、上一首或者下一首命令了；</p>
		<p>
				<br />　　3、通过这种调整，我们再也用不着手忙脚乱地在程序窗口和WMP播放界面中，来回切换了。</p>
		<p>
				<br />　　七、为指定组添加新用户</p>
		<p>
				<br />　　想在Windows Server 2003系统中添加新用户时，发现该系统控制面板窗口中却没有我们非常熟悉的“用户”图标，那么我们该从哪里着手，才能为系统的指定组添加新用户呢？呵呵，Windows Server 2003看来就是不一样！笔者经过几次摸索，发现为指定组添加新用户的方法，具体步骤如下：</p>
		<p>
				<br />　　1、用鼠标右键单击桌面上的“我的电脑”图标，从打开的快捷菜单中，执行“管理”命令，弹出一个计算机管理窗口；</p>
		<p>
				<br />　　2、展开该窗口中的“本地用户和组”文件夹，然后选中该文件夹下面的“用户”选项，此时在右边的子窗口中，我们就能看到当前系统中已经存在的所有用户了，其中标有红色叉号的用户表示已经创建但并没有启用；</p>
		<p>
				<br />　　3、用鼠标右键单击右边子窗口的空白处，从右键菜单中执行“添加新用户”命令，在随后出现的窗口中，输入需要添加的用户的相关信息，最后单击一下“创建”按钮，来结束新用户的添加工作；</p>
		<p>
				<br />　　4、要想让该用户添加到指定组的话，可以选择“组”选项，再从右边的子窗口中，选中需要加入的组名称，并用鼠标右击之，执行快捷菜单中的“添加到组”命令；</p>
		<p>
				<br />　　5、在随后出现的界面中，再单击“添加”命令，将前面创建的用户添加进来就可以了。</p>
<img src ="http://www.cnitblog.com/JIHONG/aggbug/10545.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/JIHONG/" target="_blank">jihong</a> 2006-05-15 12:41 <a href="http://www.cnitblog.com/JIHONG/archive/2006/05/15/10545.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>